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

时间:2014-01-15 10:53:28

标签: java swing netbeans jtable gui-builder

我有一个JFrame表单,其中包含JTextFieldJCombobox等,我可以将这些值接收到变量,现在我想将收到的数据添加到{{ 1}}在用户单击“添加”或类似内容的新行中。

我使用net-beans创建了JTable问题是将这些变量中的数据添加到表行的代码。一个基本的例子将不胜感激。我尝试了很多示例,并将代码添加到JTable的{​​{1}}但未发生任何事情。 我试过的例子是。 How to add row in JTable?How to add rows to JTable with AbstractTableModel method?

任何帮助都将不胜感激。

3 个答案:

答案 0 :(得分:23)

  

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

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

答案 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