15

我有一个包含s等的JFrame表单,我能够将这些值接收到变量中,现在我想在用户单击添加或类似的东西时将接收到的数据添加到新行中。JTextFieldJComboboxJTable

JTable使用 net-beans 创建的问题是将这些变量中的数据添加到表行的代码是什么。一个基本的例子将不胜感激。我已经尝试了很多示例并将代码添加到ActionListenerJButton没有发生任何事情。我试过的例子是。如何在 JTable 中添加行?以及如何使用 AbstractTableModel 方法向 JTable 添加行?

任何帮助,将不胜感激。

4

3 回答 3

24

Peeskillet 在 Netbeans GUI Builder 中使用 JTables 的蹩脚教程

  • 设置表格列标题
    1. 突出显示设计视图中的表格,然后转到最右侧的属性窗格。应该是一个显示“属性”的选项卡。确保突出显示表格而不是围绕它的滚动窗格,否则下一步将无法工作
    2. 单击属性模型...右侧的按钮。应出现一个对话框。
    3. 将行数设置为 0,设置所需的列数及其名称。
  • 在某处的框架中添加一个按钮。当用户准备提交一行时,将单击此按钮

    1. 右键单击按钮并选择Events -> Action -> actionPerformed
    2. 您应该会看到如下自动生成的代码

      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.
    }
    

因此,对于来自一对文本字段、一个组合框和一个复选框的每组数据,您可以在每次按下按钮时收集该数据并将其作为一行添加到模型中。

于 2014-01-15T11:07:15.953 回答
9

您可以将此代码用作模板,请根据您的要求对其进行自定义。

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获取更多信息。

于 2014-01-15T11:02:48.223 回答
6
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);

这里;这是解决方案。

于 2018-03-17T16:13:47.883 回答