java - 动态地将值添加到现有 JTable

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

现在我想使用字符串数组将值添加到这些空行中。 该程序的 GUI 有 5 个 JTextField 来获取用户输入。当我在 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);

最佳答案

设置现有表格行的内容:

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 方法(如果您愿意)。

关于java - 动态地将值添加到现有 JTable,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37772706/

相关文章:

java - 为独立应用程序绑定(bind)一个 java swing gui 和 c++ 后端,它们形成两个不同的项目

Java GUI 登录屏幕

java.lang.OutOfMemory错误: Java heap space in JasperReports

java - JTable 的 setSelectedRow() 在哪里?

java - 获取特定的 ArrayList 项

Java8 maven raise 错误引用过滤器不明确

java - 如何在 JTable Cell 中显示多行

java - JTable - 如何为特定列中的单元格设置文本掩码?

java - SSL 握手异常 : null cert chain

java - Akka 和长时间运行的进程的参与者模式