我有一个JFrame
表单,其中包含JTextField
,JCombobox
等,我可以将这些值接收到变量,现在我想将收到的数据添加到{{ 1}}在用户单击“添加”或类似内容的新行中。
我使用net-beans创建了JTable
问题是将这些变量中的数据添加到表行的代码。一个基本的例子将不胜感激。我尝试了很多示例,并将代码添加到JTable
的{{1}}但未发生任何事情。
我试过的例子是。 How to add row in JTable?和How to add rows to JTable with AbstractTableModel method?
任何帮助都将不胜感激。
答案 0 :(得分:23)
Peeskillet在Netbeans GUI Builder中使用JTables的蹩脚教程
在框架中添加一个按钮。当用户准备提交行
时,将单击此按钮Events -> Action -> actionPerformed
您应该看到类似以下自动生成的代码
private void jButton1ActionPerformed(java.awt.event.ActionEvent) {}
jTable1
将有一个DefaultTableModel
。您可以使用数据向模型添加行
private void jButton1ActionPerformed(java.awt.event.ActionEvent) {
String data1 = something1.getSomething();
String data2 = something2.getSomething();
String data3 = something3.getSomething();
String data4 = something4.getSomething();
Object[] row = { data1, data2, data3, data4 };
DefaultTableModel model = (DefaultTableModel) jTable1.getModel();
model.addRow(row);
// clear the entries.
}
因此,对于每个数据集,例如来自几个文本字段,组合框和复选框,您可以在每次按下按钮时收集该数据,并将其作为一行添加到模型中。
答案 1 :(得分:9)
String[] tblHead={"Item Name","Price","Qty","Discount"};
DefaultTableModel dtm=new DefaultTableModel(tblHead,0);
JTable tbl=new JTable(dtm);
String[] item={"A","B","C","D"};
dtm.addRow(item);
这里;这是解决方案。
答案 2 :(得分:7)
您可以将此代码用作模板,请根据您的要求进行自定义。
DefaultTableModel model = new DefaultTableModel();
List<String> list = new ArrayList<String>();
list.add(textField.getText());
list.add(comboBox.getSelectedItem());
model.addRow(list.toArray());
table.setModel(model);
此处DefaultTableModel
用于在JTable
中添加行,
您可以获得更多信息here。