Création dynamique de label pour une interface graphique en java

projetmarie Messages postés 11 Date d'inscription mardi 19 avril 2005 Statut Membre Dernière intervention 31 mai 2006 - 21 juin 2005 à 14:47
projetmarie Messages postés 11 Date d'inscription mardi 19 avril 2005 Statut Membre Dernière intervention 31 mai 2006 - 5 juil. 2005 à 11:23
Bonjour à tous,

J'ai des petits problèmes pour la création de mon interface. En fait je souhaite réaliser une interface dynamiquement. C'est à dire que j'affiche une Jframe sur laquelle j'ai créé un Terxtfield, dans lequel l'utilisateur rentre un nombre qu'il valide avec un bouton OK (partie statique de l'interface). Ensuite, dans la fonction ActionPerformed du bouton OK, j'utilise une boucle For pour pouvoir créer et afficher dynamiquement, sur cette même JFrame, un nombre de label égal au nombre entrer par l'utilisateur. Les labels ont l'air de se créer mais il est impossible de les faire afficher sur le panel de la JFrame.
J'aimerai savoir si c'est possible et comment faire.
Merci d'avance...

5 réponses

cs_GodConan Messages postés 2113 Date d'inscription samedi 8 novembre 2003 Statut Contributeur Dernière intervention 6 octobre 2012 12
21 juin 2005 à 23:03
as tu essayer le repaint() apres avoir inserrer tes labels??!!

GodConan
0
projetmarie Messages postés 11 Date d'inscription mardi 19 avril 2005 Statut Membre Dernière intervention 31 mai 2006
22 juin 2005 à 15:54
merci pour l'info, ça marche...
0
projetmarie Messages postés 11 Date d'inscription mardi 19 avril 2005 Statut Membre Dernière intervention 31 mai 2006
4 juil. 2005 à 13:31
Salut à tous,

Je crée à peu prés le même genre d'interface dynamiquement à part que je fais afficher (avec une boucle for) des textfield. J'appelle plusieurs fois de suite cette boucle for. J'aimerai savoir comment je peux récupérer les informations entrées par l'utilisateur dans les différents textfield créés.

Mon code est le suivant:
tabSousAgent est un vector, chaque fois que l'utilisateur entre quelques chose dans un textfield et passe à un autre les données entrées dans le textfield sont enregistrées dans le vector (avec la fonction void focuslost). Le problème est que, si par exemple, je fais afficher dynamiquement 3 texfield et que l'utilisateur commence par remplir le troisième, les données tapées par l'utilsateur seront enregistrées dans la première case du vector et non dans la troisième. Donc quand je vais récupérer les données du vector, je ne saurais pas quelle donnée correspond à quel textfield.

for(int i=0;i<nbreSA;i++){

final JTextField tempNomSousAgent = new JTextField();
tempNomSousAgent.addFocusListener(new java.awt.event.FocusAdapter() {
public void focusLost(java.awt.event.FocusEvent e) {
tabSousAgent.add(tempNomSousAgent.getText());
}
});
panel.add(tempNomSousAgent);

myFrame.show();
}

Si vous savez comment faire...
Merci d'avance...
0
cs_GodConan Messages postés 2113 Date d'inscription samedi 8 novembre 2003 Statut Contributeur Dernière intervention 6 octobre 2012 12
4 juil. 2005 à 20:10
JTextField[] tempNomSousAgent = new JTextField[ nbreSA ];

for(int i=0;i<nbreSA;i++){

tempNomSousAgent[i] = new JTextField();
tempNomSousAgent[i].addFocusListener(new java.awt.event.FocusAdapter() {
public void focusLost(java.awt.event.FocusEvent e) {
tabSousAgent.add(tempNomSousAgent[i].getText());
}
});
panel.add(tempNomSousAgent[i]);

myFrame.show();
}

ensuite tu tarange pour que 'tempNomSousAgent' soit visible partou ou tu en a besoin ...
ou alors tu le passe en param ou encor tu peu aussi crer ta propre class component qui gere une collection de JTex.. ;o) enfin la je t ai donne la solution la plus rapide et la plus simple ...

GL

++

GodConan
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
projetmarie Messages postés 11 Date d'inscription mardi 19 avril 2005 Statut Membre Dernière intervention 31 mai 2006
5 juil. 2005 à 11:23
Ok merci beaucoup
A +
0
Rejoignez-nous