Voici 3 bouts de code :
1- Un Tableau déclarant les nom et les nombres de colonne des Labels et TextFields d'une des mes frames :
Object [][] composants = {
{"Nom",new Integer(10),"Prenom",new Integer(10)},
{"Rue ",new Integer(33)},
{"Lieu ",new Integer(33)},
{"CP ",new Integer(4),"Ville",new Integer(10)},
{"Tél.",new Integer(6)},
{"N° Sécu.",new Integer(6)},
{"Matricule",new Integer(2),"Agence",new Integer(10)}
};
Dans ce tableau je voudrais rajouter la position (GridBagConstraints.CENTER, GridBagConstraints.WEST, ...) de chaque paire, Label + TextField, dans mon Panel global.
2- J'utiliserais cette position dans cet autre bout de code :
while(n != composants.length){
Panel dataEmpPanelRow = getDataEmpPanelRow(composants[n]);
c.gridwidth = GridBagConstraints.REMAINDER;
ICI pour définir la contrainte de position du panel dataEmpPanelRow
gridbag.setConstraints(dataEmpPanelRow, c);
dataEmpPanel.add(dataEmpPanelRow);
n++;
}
add(dataEmpPanel);
3- détails de la méthode getDataEmpPanelRow qui renvoie un Panel qui encapsule le Label et son TextField correspondant :
private Panel getDataEmpPanelRow(Object [] composants) {
int n = 0;
Panel dataEmpRow = new Panel();
while(n != composants.length) {
Label label = new Label((String)composants[n]);
TextField textField = new TextField( ((Integer)composants[++n]).intValue() );
dataEmpRow.add(label);
dataEmpRow.add(textField);
n++;
}
return dataEmpRow;
}
Sinon il tout a fait possible de stocker un int dans un tableau object en l'encapsulant dans un objet Integer et en le récupérant par la méthode getValue();