...sono daccordo, non ho dato una spiegazione completa.
Le jtextfield le genero "dinamicamente" (in modo tale che se aggiungo colonne alla tabella, automaticamente creo la corrispondente jtextfield) popolandole coi valori della tabella.
codice:
ResultSet rs= statement.executeQuery("select * from COL where tname='Tabella'
and COLNO between 1 and '"+max+"'"+"order by COLNO");
int i=0;
while(rs.next()){
colonna[i] = rs.getString(3);//nome colonna
tipo_colonna[i] = rs.getString(4);//tipo della colonna
if{tipo_colonna[i].equals("VARCHAR2"))
panel[i] = new JPanel();
y_panelSub = y_panelSub+60;
panel[i].setLayout(null);
panel[i].setBounds(0,y_panelSub,400,60);
jl = new JLabel(colonna[i]);
jl.setFont(new Font("Verdana",Font.PLAIN,12));
jtf = new JTextField(100);
jtf.setText(campi_tb[i]);//campi_tb[] array contenente le colonne della tabella
if (colonna[i].equals("CAMPO1")){
campo1 = jtf.getText()
}
jtf.setFont(new Font("Verdana",Font.BOLD,10));
jl.setBounds(10,20,180,30);
jtf.setBounds(210,30,160,20);
panel[i].add(jl);
panel[i].add(jtf);
}
else if (tipo_colonna[i].equals("NUMBER")){
panel[i] = new JPanel();
y_panelSub = y_panelSub+70;
panel[i].setLayout(null);
panel[i].setBounds(0,y_panelSub,400,60);
jl = new JLabel(colonna[i]);
jl.setFont(new Font("Verdana",Font.PLAIN,12));
jtf = new JTextField(22);
jtf.setText(campi_tb[i]);
if (colonna[i].equals("CAMPO2")){
campo2 = jtf.getText();
}
jtf.setFont(new Font("Verdana",Font.BOLD,10));
jl.setBounds(10,20,180,20);
tf.setBounds(210,20,170,20);
panel[i].add(jl);
panel[i].add(jtf);
i++;
}
Non so come differenziare le varie jtextfield.
Nel metodo modifica,infatti, se faccio System.out.println("campo1: "+jtf.getText()); restituisce la stringa vuota, perchè non capisce a quale jtf faccio riferimento.