如何从从 jtextfield 和组合框接收的值向 Jtable 添加数据行

2022-09-03 09:21:51

我有一个具有s等的表单,我能够将这些值接收到变量中,现在我想在用户单击“添加”或类似内容时将接收到的数据添加到新行中。JFrameJTextFieldJComboboxJTable

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

任何帮助将不胜感激。


答案 1

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

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

    1. 右键单击按钮,然后选择Events -> Action -> actionPerformed
    2. 您应该会看到类似于以下自动生成的代码

      private void jButton1ActionPerformed(java.awt.event.ActionEvent) {}
      
  • 将有一个 .您可以使用数据向模型中添加行jTable1DefaultTableModel

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

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


答案 2

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

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

这里用于添加行,您可以在此处获取更多信息。DefaultTableModelJTable


推荐