ajout d'un champ dynamique interface graphique

ajout d'un champ dynamique interface graphique - Java - Programmation

Marsh Posté le 01-03-2005 à 17:16:55    

Bonjour!! je suis débutante en java  :cry: et voici mon problème:
J'ai crée une interface graphique dont l'un des JPanel est une sorte de formulaire avec plusieurs champs à remplir (JTextfields et JComboBox). Mon but est de créer un champ dynamique : à chaque clic sur un bouton, un JTextfield (ou JCombobox) doit s'ajouter au JPanel de base. Par exemple : je désire créer un champ dans lequel l'utilisateur peut entrer ses adresses mail. Il n'y a qu'un champ à la base, mais si l'utilisateur a plusieurs adresses, il doit pouvoir, en cliquant sur un bouton "ajouter", rentrer toutes ses adresses. Champ 1 pour l'adresse 1; champ 2 pour l'adresse 2...et ce de manière infinie! :sol:  
voilà, merci de votre aide !! :hello:

Reply

Marsh Posté le 01-03-2005 à 17:16:55   

Reply

Marsh Posté le 01-03-2005 à 17:26:34    

c'est quoi le probleme ?


---------------
Hey toi, tu veux acheter des minifigurines Lego, non ?
Reply

Marsh Posté le 01-03-2005 à 17:57:16    

C'est vrai que c'est pas très clair...  :pfff:  
voici mon problème : je ne sais pas du tout comment m'y prendre. J'ai essayé de créer une fonction qui permette à chaque clic sur le bouton de rajouter un champ, mais rien ne se passe. D'autre part, j'ai utilisé un GridBagLayout comme gestionnaire de répartition, et je ne sais pas si ça ne fait pas obstacle à l'ajout de nouveaux composants. En fait ma question est très générale et mon inexpérience en Java m'empêche d'avoir suffisamment de recul sur un problème pour en trouver les hypothétiques solutions... :pt1cable:  
voilou! merci..

Reply

Marsh Posté le 01-03-2005 à 18:00:19    

montre déjà comment tu le rajoutes ton champs. si c'est juste une question d'affichage, envoie un pm à nraynaud en lui promettant des choses s'il te répond


---------------
Hey toi, tu veux acheter des minifigurines Lego, non ?
Reply

Marsh Posté le 01-03-2005 à 18:26:42    

the real moins moins a écrit :

envoie un pm à nraynaud en lui promettant des choses s'il te répond


des choses en rapport avec stitch+ [:aloy]


---------------
trainoo.com, c'est fini
Reply

Marsh Posté le 01-03-2005 à 23:52:51    

Bon bein voilà j'ai trouvé en partie une solution.
En fait, c'est dans la méthode actionPermormed, j'oubliais la mise
à jour du JPanel qui se traduit par updateUI();(en rouge ci-dessous). Par contre j'ai quand même des problèmes de mise en page que je suis entrain d'essayer de résoudre. Merci, A +!!
 
Après avoir ajouté un écouteur à mon bouton, j'introduis la méthode actionPerformed dans mon JPanel :
 
public void actionPerformed(ActionEvent e) {
 if(e.getSource() == ajout){
 JTextField nouveau = new JTextField("nouvelle adresse" );
 add(nouveau);
   
}
 updateUI();
}

Reply

Marsh Posté le 02-03-2005 à 09:27:18    

[:wam]
 


---------------
trainoo.com, c'est fini
Reply

Marsh Posté le 02-03-2005 à 11:12:22    

explique au lieu de faire des grimaces :o
il vient ce tuto? [:florentg]


---------------
Hey toi, tu veux acheter des minifigurines Lego, non ?
Reply

Marsh Posté le 02-03-2005 à 11:21:28    

les UI, c'est les délégués d'affichage spécialisés pour le look-and-feel, ça n'a rien à voir avec la choucroute [:florentg]
 
pour moi add() tout seul ça devrait marcher, puisque le composant prévient son layout dans ce cas, et que ça déclenche un recalcul !


---------------
trainoo.com, c'est fini
Reply

Marsh Posté le 02-03-2005 à 11:45:21    

et pq ça marche pas alors? [:itm]


---------------
Hey toi, tu veux acheter des minifigurines Lego, non ?
Reply

Marsh Posté le 02-03-2005 à 11:45:21   

Reply

Marsh Posté le 02-03-2005 à 11:46:18    

j'en sais rien, j'ai pas trop le temps de regarder tout de suite.
 
mais ça doit être update() au pire la méthode pour vider les caches/redessiner tout.


---------------
trainoo.com, c'est fini
Reply

Marsh Posté le 02-03-2005 à 12:06:04    

Ce serait pas plutôt un validate() ?

Reply

Marsh Posté le 02-03-2005 à 13:26:11    

Oui effectivement, un update() tout seul, ça fonctionne pas, mais par contre, validate() ça marche, et permet de valider l'ajout d'un nouveau composant. Merci!!

Reply

Marsh Posté le 02-03-2005 à 18:54:55    

Par contre je n'ai pas réussi à disposer mon nouveau JTextField où je voulais. J'ai utilisé un GridBagLayout avec donc des dispositions définies, et je ne sais pas comment (ni même si c'est possible) insérer mon nouveau composant entre deux autres composants déjà disposés. Sachant que n composants peuvent être insérés... Si quelqu'un a une idée... Merci!

Reply

Marsh Posté le 02-03-2005 à 20:46:28    

oué, validate(), pardon.


---------------
trainoo.com, c'est fini
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed