Question

Je voudrais créer un nouveau thread-distribution d'événements dans Swing, et je vais avoir du mal à trouver des références en ligne pour savoir comment faire. Je l'ai fait dans .NET en créant un nouveau thread et appeler Application.run (...). Quelqu'un at-il fait cela? Est-il possible Swing?

Pour votre information, la raison pour laquelle je suis en train de le faire parce que je suis en train d'écrire un plug-in Eclipse, et je voudrais faire apparaître les boîtes de dialogue qui ne sont pas modales à l'IDE, mais qui sont modales (blocage) à ma logique de l'interface utilisateur. Je pourrais y parvenir grâce à des boîtes de dialogue non modales et callbacks, mais qui nécessite la surcharge de faire mon code multithread. Je reviens que si le premier est pas possible.

Était-ce utile?

La solution

Oui, il est possible. Je l'ai ai fait ce multiple logique de threads d'expédition EDT dans Swing. Cependant, le résultat net est que cela ne fonctionnait pas correctement.

(a) Tous les JVMs ne fonctionnent pas bien avec plusieurs threads EDT (problèmes de synchronisation de rendu des graphiques logique en code natif et tel, IBM JVM a échoué avec plusieurs threads EDT, Sun JVM et JVM d'Apple a fait un travail)

(b) la logique de rendu Swing a quelques bugs causant que des erreurs de rendu aléatoires se produisent (par exemple, http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=6727829 ).

Quoi qu'il en soit, en faisant cela, il faut établir essentiellement deux AppContexts, qui ont chacun leur propre fil EDT.

Autres conseils

Je suis un peu confus par votre question, parce que vous mentionnez swing mais que vous êtes en train d'écrire un plugin Eclipse. Puisque la question est étiquetée Swing, je vais vous donner une réponse Swing (mais comme CW posté).

Il y a un thread de répartition des événements. Il y a toujours un événement fil d'expédition, à moins qu'il n'y en a pas du tout. Vous ne pouvez pas créer un autre.

Vous pouvez toutefois modifier le < => de vos boîtes de dialogue, ou modifier le APPLICATION_EXCLUDE .

Mais encore une fois, je ne vois pas comment cela pourrait vous aider, car Eclipse utilise SWT au lieu de Swing.

Je vais ordure ma dernière réponse et prendre un nouveau départ.

En SWT, vous pouvez créer Shell s (windows) ou sur mesure Dialog s qui sont modales juste le parent en passant le drapeau de style SWT.PRIMARY_MODAL pendant création.

Notez que est une classe <=> abstraite, de sorte que vous auriez à créer votre propre. Il est probablement plus facile à utiliser <=>.

Edit:

Pourquoi SWT? Parce que ce que Eclipse utilise. Voir:

scroll top