2010-05-02 3 views
1

J'ai un formulaire dans Swing avec beaucoup de champs de texte recevant des données. L'idée est quand un bouton est cliqué, l'application rassemble toutes les données des champs de texte à la fois. Connaissez-vous une bonne pratique pour cela? Ou est-il nécessaire de rassembler le champ de données par champ de texte?Java Swing collecte automatiquement les données à partir des formulaires

+0

Je ne fais pas Swing, mais votre mot clé ici est probablement "MVC". Laissez le contrôleur mettre les données de la vue (ui) dans le modèle (javabean) de manière transparente. – BalusC

Répondre

2

Si vous cherchez un framework, essayez BeansBinding de JDesktop. Il est assez bien intégré avec le constructeur de l'interface graphique Matisse de l'IDE Netbeans, et devrait être suffisant pour la plupart des besoins dans un programme simple. Si vous utilisez Netbeans, here's a good primer pour vous aider à démarrer.

Cependant, comme BeansBinding fonctionne en faisant abstraction de toute la complexité, ce que vous perdez est un contrôle plus granulaire. Si vous développez une application très complexe qui nécessite plus de contrôle et de réglages, je vous suggère de retrousser vos manches et de vous préparer à vous salir les mains. Enregistrez une classe en tant qu'écouteur pour chacun des champs modifiables du formulaire et enregistrez les données dans une classe de beans qui stocke chacune des valeurs nécessaires.

2

Vous devrez lire le texte de chaque zone/zone de texte une à la fois. Afin de vous rendre la vie plus facile - vous voudriez mettre tous les champs que vous voulez lire dans une liste ou un vecteur quand ils sont créés; de cette façon, vous serez en mesure de les lire dans une boucle simple. Si vous avez besoin de savoir quel champ est, utilisez une HashMap et nommez chaque JTextField avec un nom unique pour servir de clé pour HashMap. Inversement, vous pouvez utiliser .setName ("SomeName") et utiliser List/Vector et utiliser getName() pour voir de quel champ il s'agit. En ce qui concerne les bonnes pratiques, à moins que vous n'ayez un grand nombre de champs dans votre formulaire, vous n'avez pas besoin de vous inquiéter car cela ne vous prendra pas trop de temps et vous pourrez mettre tout le code de lecture votre méthode d'écoute. Cependant, si nous parlons de plusieurs dizaines ou même centaines de champs de texte, vous voudriez commencer un nouveau thread pour le faire pour vous et désactiver le bouton pour que l'utilisateur sache que quelque chose se passe et ne puisse pas appuyer sur le même bouton bouton à nouveau jusqu'à ce que la lecture soit terminée.

+0

hey les gars! thx .. Je pensais à un hashmap .. jejeje .. mais je n'étais pas sûr, cependant, thx =) – RhigoHR

Questions connexes