Di seguito riporto il codice più in dettaglio.
Ho effettuato qualche modifica, ma non ho ancora trovato la soluzione
Creo dinamicamente le jtextfield e le popolo coi valori ricavati da una tabella.
int i=0;
...
while(rsQuery.next())
colonna[i] = rsQuery.getString(3);//nome colonna della tabella
panel[i] = new JPanel();
y_panelSub = y_panelSub+60;
panel[i].setLayout(null);
panel[i].setBounds(0,y_panelSub,400,80);
jl = new JLabel(colonna[i]);
jl.setFont(new Font("Verdana",Font.PLAIN,12));
jtf = new JTextField(10);
if (colonna[i].equals("campo1")){
jtf.setText(campo_tabella[i]);//Recupero il valore da inserire nella jtextfield dalla colonna di una tabella del db
campo1 = jtf.getText();
jtf_list.add(jl.getText());//aggiungo alla lista la label della jtextfield
jtf_list.add(campo1);//aggiungo alla lista il valore della jtextfield
}
if (colonna[i].equals("campo2")){
jtf.setText(campo_tabella[i]);
campo2 = jtf.getText();
jtf_list.add(jl.getText());
jtf_list.add(campo2);
}
if (colonna[i].equals("campo3")){
jtf.setText(campo_tabella[i]);
campo3 = jtf.getText();
jtf_list.add(jl.getText());
jtf_list.add(campo3);
}
jtf.setFont(new Font("Verdana",Font.BOLD,10));
jl.setBounds(10,20,180,20);
jtf.setBounds(210,20,160,20);
jtf.addActionListener(this);
panel[i].add(jl);
panel[i].add(jtf);
i++;
}//fine while per recuperare le colonne della tabella
public void actionPerformed (ActionEvent e) {
if(e.getSource() == jb_modifica){
modifica();
}
}
public void modifica(){
jtf.setText(jtf.getText());
System.out.println(jl.getText()+" "+jtf.getText());//?? mostra solo l'ultima label e l'ultima jtextfield del pannello
}
Non appena premo il pulsante per le modifiche, riesco a visualizzare solo il valore dell'ultima jtextfield su cui opero una modifica.
Ad esempio campo3 contiene "prova" (valore recuperato dalla tabella del db).
A questo punto, modifico nella jtextfield il contenuto scrivendo ad es. "test" al posto di "prova".
Premo il pulsante che richiama il metodo modifica ed effettivamente mi mostra il nome della label e il nuovo valore della jtextfield "test".
Non mi è chiaro come fare la stessa cosa per tutte le jtextfield e non solo l'ultima.
In altre parole non so come tenere da qualche parte il riferimento alle varie jtextfield, in modo tale da poter modificare i loro valori e memorizzarli per poi effettuare le updates sulla tabella.