J'ai besoin d'écrire une application GUI multiplateforme pour traiter (dans plusieurs threads) et visualiser des quantités de données assez importantes. Idéalement, l'application doit être relativement rapide et bien paraître.
L'interface de l'application se composera d'un widget de table, d'un widget d'arbre et d'un widget de dessin de figure personnalisé. L'utilisateur pourra modifier les données de n'importe lequel de ces widgets et les changements devraient être immédiatement reflétés dans les autres widgets.
Naturellement, je prévois d'utiliser MVC. Cependant, je fais normalement toute ma programmation GUI en C ++ / Qt, et j'ai une exposition très limitée à Java. J'apprécierais donc vraiment tout conseil sur la façon d'organiser une telle application en Java. En particulier, dois-je utiliser Swing ou JavaFX? Quels widgets choisiriez-vous pour le travail? Pourriez-vous recommander des livres / tutoriels en ligne couvrant ces aspects de la plate-forme Java?
J'apprécierai grandement toute rétroaction. Merci!
(cette question a été initialement publiée sur Stack Overflow , mais ce site a été suggéré comme un endroit plus approprié pour la poser)
Aller avec un modèle modèle-vue-présentateur à la place. Vous pouvez voir un bon exemple MVP dans Swing ici via le projet mvp4j .
Bien que je ne sois pas Swing, je consulterais également les articles MVP sur le site GWT Google Developers pour plus d'informations sur ce modèle et comment l'appliquer en Java; les mêmes principes de conception se tiennent indépendamment du cadre et GWT est très similaire à Swing.
Une description rapide du fonctionnement de MVP:
Lorsqu'il est correctement implémenté, MVP rendra votre application très découplée et vous permettra d'apporter des modifications sans déranger les autres domaines de votre application.
Modifier: en fonction de votre décision d'utiliser JavaFX, je vous recommande de consulter les articles suivants
la source
Les widgets dont vous avez besoin se trouvent dans Swing ou SWT . La documentation contient des exemples de composants (Swing) ou de widgets (SWT), il sera donc assez facile de les identifier.
Swing est une bibliothèque GUI incluse dans JDK et construite à partir de zéro. SWT est externe et les composants sont basés sur des composants natifs.
Quant à MVC, ils ont tous les deux un support. Dans Swing, vous avez un modèle pour chaque composant qui fournit pratiquement les données sous-jacentes. Le composant lui-même est à la fois la vue et le contrôleur.
la source