我使用以下方式创建了一个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);
答案 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
方法。