Java obtient les composants JPanel
J'ai un Composite plein de JTextFields...
for (int i=0; i<maxPoints; i++) {
JTextField textField = new JTextField();
points.add(textField);
}
Comment puis-je obtenir plus tard le JTextFields dans un Composite? Comme si je veux leurs valeurs avec
TextField.getText();
Grâce
source d'informationauteur Devoted
Vous devez vous connecter pour publier un commentaire.
Bien garder à l'esprit qu'ils n'ont pas par eux-mêmes ( je pense que lire quelques questions à propos de la création dynamique de ces panneaux à l'exécution )
Dans les réponses posté là-bas, quelqu'un a dit que vous devriez gardé la référence à ces objets textfield dans un tableau. C'est exactement ce dont vous avez besoin ici:
//Plus tard
Simple n'est ce pas?
N'oubliez pas de garder ces types d'artefacts ( liste ) que privée que possible. Ils sont pour votre contrôle seulement, je ne pense pas qu'ils appartiennent à l'interface.
Disons que vous voulez pour obtenir la matrice de textes, au lieu de
Vous devriez considérer:
Chaque Composite en Java est aussi un AWT conteneur. Ainsi, vous devriez être en mesure d'utiliser getComponents pour obtenir la matrice de composants contenus dans le panneau, de parcourir, de vérifier leur types (assurez-vous de ne pas obtenir d'autres contrôles), et de faire tout ce dont vous avez besoin avec eux.
Cependant, ce est généralement une mauvaise conception. Si vous savez que vous aurez besoin pour accéder à des composants spécifiques, il est préférable de maintenir un tableau de ces champs de texte et de les passer, même si elles sont visuellement contenues dans le conteneur.
Si c'est une tâche récurrente ou qui pourrait être fait à partir de plusieurs points, il peut même être utile d'avoir une classe spéciale représentant un panneau avec des champs de texte, qui sera ensuite fournir par le biais de son interface de moyens d'accès à ces champs.
Vous devriez appeler le getComponents cette méthode retourne un tableau de tous les éléments sur votre Composite. Après vous pouvez effectuer une itération sur l'ensemble et vérifier si ses égal à égal avec les recherchés après la composant.
C'est ce que j'ai fait récursive de passer par le conteneur et d'obtenir les objets textfield qui sont sur le JPanels.
Et puis de l'utiliser, vous appelez cela de cette façon
Votre problème est d'écrire les codes de texte. Pourquoi ne pas juste produire de l'il et de le coller dans le programme!!...
Coller la sortie du code ci-dessus dans votre programme et vous avez terminé.
Maintenant, pour accéder au contenu des champs de texte, vous pouvez générer le code ennuyeux texte d'une manière similaire....