动态地向现有JTable添加值

时间:2016-06-12 09:31:17

标签: java swing jtable

我使用以下方式创建了一个JTable。该表有5列4行。 在这种状态下,所有4行都是空的。

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

现在我想使用String数组将值添加到这些空行中。 该程序的GUI有5个JTextField来获取用户输入。当我在JTextFileds中输入值并单击Add按钮时,所有JTextFiled值都通过String数组命名值。

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

1 个答案:

答案 0 :(得分: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方法。