2009-03-06 7 views
3

Je me demandais si quelqu'un avait déjà essayé d'exécuter une interface SWT complexe hébergée dans un composant Swing.Exécution de composants SWT dans une application Swing

J'ai réussi à obtenir une démonstration très simple d'aller, mais si quelqu'un d'autre a essayé et échoué/réussi à ce faire, il serait génial d'apprendre de leurs expériences. Donc, pour réitérer mon application est une application Swing Je souhaite faire usage d'un composant complexe SWT UI (glisser-déposer, fenêtres popup et boîtes de dialogue) - quelqu'un a géré cela?

Répondre

3

J'ai utilisé à la fois Swing et SWT, mais jamais dans la même application/projet auparavant.

Tant que vous n'êtes pas essayer de mélanger les composants ensemble dans les mêmes fenêtres, je ne vois aucune raison pour que vous ne pouvez pas avoir des fenêtres complètement séparées/dialogues chacun utilisant un ensemble widget spécifique. Cependant, essayer de mélanger SWT et Swing dans une seule fenêtre ne fonctionnera probablement pas, ou à tout le moins cause beaucoup de problèmes puisque les deux ensembles de widgets reposent sur des moyens de dessin/mise en page complètement différents - les composants de Swing sont gérés directement dans Java. complètement séparé du système d'exploitation sous-jacent, tandis que SWT s'appuie explicitement sur le système d'exploitation sous-jacent pour faire tout (ou la plupart) du rendu de l'interface graphique. Essayer de mélanger les deux causerait probablement toutes sortes de problèmes. Bien sûr, je rejetterai aussi la réponse habituelle «ce n'est pas une pratique recommandée»: à moins d'avoir un but précis en tête, mélanger différents ensembles de widgets dans la même application n'est pas une bonne chose idée. Swing et SWT ont deux philosophies complètement différentes et des architectures sous-jacentes. En fait, SWT est née du fait qu'IBM/OTI n'a pas aimé l'approche adoptée avec Swing et a donc choisi d'implémenter ses propres widgets. Avec de telles approches contrastées pour les widgets GUI, il vaut mieux en choisir un et s'y tenir, plutôt que de mêler les deux ensemble.

2

mélange swing et SWT est pas la meilleure chose à faire, mais si vous avez pas d'options, ce n'est pas une bête terriblement difficile à tuer. Essayez simplement d'appliquer certaines règles/standards dans votre code. par exemple. conserver toutes les boîtes de dialogue dans Swing (ne pas utiliser un mélange des deux s'il n'y a pas de raison), utiliser des conventions de nommage pour différencier les composants Swing et SWT, etc. Assurez-vous de bien connaître la façon dont Swing et SWT les composants sont gérés par le système d'exploitation/la machine virtuelle Java avant de commencer à résoudre les problèmes d'interface utilisateur complexes.

Une chose à surveiller est le glisser-déposer entre les composants Swing et SWT. C'est un peu difficile, mais particulièrement si vous commencez à lancer des types de données personnalisés.

Questions connexes