2016-06-12 7 views
0

Ich habe ein JTable mit folgender Methode erstellt. Diese Tabelle hat 5 Spalten und 4 Zeilen. Alle 4 Zeilen sind in diesem Status leer.Werte zu vorhandenen JTable dynamisch hinzufügen

String[] columns = {"Emplotee ID","Name","Address","City","Salary"}; 

//Table that already have 4 empty rows 
DefaultTableModel model = new DefaultTableModel(columns,4); 
JTable detail = new JTable(model); 
JScrollPane scroll = new JScrollPane(detail); 

Jetzt möchte ich Werte in diese leeren Zeilen mit String-Array hinzufügen. Die GUI dieses Programms hat 5 JTextFields, um Benutzereingaben zu erhalten. Wenn ich Werte in JTextFileds eingeben und auf die Schaltfläche Hinzufügen klicke, erhalten alle JTextFiled-Werte nach String-Array-benannte Werte.

String[] values = new String[6]; 
//When click addButton all textFiled data should go into table 
addButton.addMouseListener(new MouseAdapter(){ 
    @Override 
    public void mouseClicked(MouseEvent evt){ 
     values[0] = idField.getText(); //get JTextFields data into array 
     values[1] = nameField.getText(); 
     values[2] = addressField.getText(); 
     values[3] = cityField.getText(); 
     values[4] = salaryField.getText(); 

     //What now? 
    } 
}); 

Ich weiß, ich kann dies verwenden, um neue Zeile in die Tabelle hinzuzufügen. Aber das ist nicht das Feature, was ich will.

DefaultTableModel newModel = (DefaultTableModel)detail.getModel(); 
newModel.addRow(values); 
+0

Kennen Sie diesen Link? Es sollte eine Antwort sein. http://stackoverflow.com/questions/3549206/how-to-add-row-in-jtable – Rjiuk

+0

Dies ist nicht was ich will. Ich habe bereits eine JTable mit 4 leeren Zeilen. Ich möchte keine weiteren Zeilen hinzufügen und muss lediglich Werte zu vorhandenen Zeilen hinzufügen. –

Antwort

1

Set Inhalt einer vorhandenen Tabellenzeile mit:

int row; 
.... 
// make sure row is set to index of the table row 
// you want to populate 
for (int c=0; c<values.length; ++c) 
    detail.setValueAt(values[c], row, c); 

TableModel hat auch setValueAt Methode, wenn Sie bevorzugen.

+0

Danke, Alter. Ich habe versucht, eine eingebaute Methode zur Ausführung der obigen Aufgabe zu verwenden. Aber das funktioniert auch für mich. –