Pour en revenir à ton post d'avant, sur l'initialisation des fields comme je vois qu'ils se multiplient de post en post, je te conseille de passer par une map, qui te simplifiera la manipulation.
Dans la classe, tu places une variable :
private Map<String, JTextField> fieldMap = new HashMap<>();
Quand tu créés un champ, tu lui attribue un identifiant unique (le mieux est de faire des constants, ou éventuellement au lieu d'utiliser des String tu pourrais utiliser une enum).
Par exemple, pour le champ Smin, on va créer une constante comme suit (dans la classe), par exemple :
public final static String FIELD_INITVAR_SMIN="initvar.smin";
Ensuite, quand tu créés ton champs :
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
| private JPanel creerInitVarPanel() {
JPanel panel = new JPanel();
panel.setBackground(Color.white);
SpringLayout layout = new SpringLayout();
//panel.setLayout(new GridLayout(5,1));
JLabel SMinLabel = new JLabel("SMin :");
panel.add(SMinLabel); // tu avais oublié cette ligne
JTextField field1 = new JTextField();
field1.setColumns(3);
fieldMap.put( FIELD_INITVAR_SMIN, field1 );
panel.add(field1);
JButton bouton = new JButton("Validée");
panel.add(bouton);
... |
tu ajoutes à ta classe une méthode :
1 2 3 4
| public void setField(String id, String valeur) {
JTextField field = fieldMap.get(id);
if ( field!=null ) field.setText(valeur);
} |
et maintenant tu peux l'appeler comme ça :
setField( FIELD_INITVAR_SMIN, "xxx" ) ;
Et tu fais la même chose avec tous tes champs.
Partager