我有一个JFrame
表单,它有JTextField
s、JCombobox
等。我可以将这些值接收到变量中,现在我想在用户单击"添加"或类似的操作时,将接收到的数据添加到新行中的JTable
中。
我使用netbeans创建了JTable
,问题是将这些变量中的数据添加到表的行中的代码是什么。请举一个基本的例子。我尝试了很多例子,并将代码添加到JButton
的ActionListener
中,但什么都没发生。我试过的例子是。如何在JTable中添加行?以及如何使用AbstractTableModel方法向JTable添加行?
如有任何帮助,我们将不胜感激。
Peeskilet在Netbeans GUI Builder 中使用JTables的蹩脚教程
- 设置表列标题
- 在设计视图中高亮显示该表,然后转到右侧的属性窗格。应该是一个写着"属性"的选项卡。请确保突出显示表格,而不是它周围的滚动窗格,否则下一步将不起作用
- 单击型右侧的kbd>按钮。此时会出现一个对话框
- 将行设置为0,设置所需的列数及其名称
-
在框架中添加一个按钮,其中,。当用户准备好提交一行时,将单击此按钮
- 右键单击按钮并选择
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. }
因此,对于每一组数据,如来自几个文本字段、组合框和复选框的数据,您可以在每次按下按钮时收集这些数据,并将其作为一行添加到模型中。
您可以使用此代码作为模板,请根据您的需求进行自定义。
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);
这里CCD_ 11用于在CCD_,你可以在这里获得更多信息。
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);
在这里;这就是解决方案。