2016-06-12 55 views
0

我已經使用以下方法創建了一個JTable。這個表格有5列和4行。 在這種狀態下,所有4行都是空的。動態地將值添加到現有的JTable

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); 

現在我想要使用字符串數組將值添加到這些空行。 這個程序的GUI有5個JTextFields來獲取用戶輸入。當我將值輸入到JTextFileds並單擊添加按鈕時,所有JTextFiled值都將通過字符串數組命名值得到。

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? 
    } 
}); 

我知道我可以用它在表格中添加新行。但這不是我想要的功能。現有的錶行與

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

你見過這個鏈接嗎?它應該是一個答案。 http://stackoverflow.com/questions/3549206/how-to-add-row-in-jtable – Rjiuk

+0

這不是我想要的。我已經有一個有4個空行的JTable。我不想向其添加其他行,只需將值添加到現有行。 –

回答

1

套裝內容:

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也有setValueAt方法,如果你喜歡。

+0

謝謝老兄。我試圖尋找一種內置的方法來完成上述任務。但是這也對我有用。 –