Salut,
Si tu as une liste de clefs sous forme d'ArrayList<String>, tu peux boucler et créer pour chaque clef, un label et un textField.
1 2 3 4 5 6 7 8 9
| for(String key : keys) { // keys est de type List<String> (ou même Collection<String>, ou Iterable<String>)
JLabel label = new JLabel(key);
JTextField field = new JTextField();
panel.add( label, /* contrainte */);
panel.add( field, /* contrainte */);
} |
En fonction du layout utilisé, il faudra mettre éventuellement les bonnes contraintes à la place des commentaires.
Par contre, il va être difficile de récupérer les valeurs saisies pour chaque clef avec seulement ça. Une option serait de stocker les fields associés à leur clef dans une map (variable de classe) :
1 2 3 4 5 6 7
| public class Bidule {
private Map<String, JTextField> fieldMap = new HashMap<>();
/* le reste du code */
} |
1 2 3 4 5 6 7 8 9 10 11
| for(String key : keys) { // keys est de type List<String> (ou même Collection<String>, ou Iterable<String>)
JLabel label = new JLabel(key);
JTextField field = new JTextField();
panel.add( label, /* contrainte */);
panel.add( field, /* contrainte */);
fieldMap .put(key, field);
} |
Dans une autre méthode tu pourras faire, par exemple :
fieldMap.get( key ).getText();
Partager