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

Naw*_*waz 14 java swing netbeans jtable gui-builder

我有一个JFrame具有JTextFields JCombobox等的表单,我能够将这些值接收到变量,现在我想JTable在用户单击Add或类似的东西时将接收到的数据添加到新行中.

我创建了JTable使用net-beans的问题是将这些变量中的数据添加到表行的代码.一个基本的例子将不胜感激.我曾试过无数例子,添加的代码来ActionListenerJButton,但没有任何反应.我试过的例子是.如何在JTable中添加行?以及如何使用AbstractTableModel方法向JTable添加行?

任何帮助,将不胜感激.

Pau*_*tha 25

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

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

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

      private void jButton1ActionPerformed(java.awt.event.ActionEvent) {}
      
      Run Code Online (Sandbox Code Playgroud)
  • 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.
    }
    
    Run Code Online (Sandbox Code Playgroud)

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


eat*_*ode 8

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

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);
Run Code Online (Sandbox Code Playgroud)

这里DefaultTableModel用于添加行JTable,您可以在这里获得更多信息.


Ude*_*ara 5

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);
Run Code Online (Sandbox Code Playgroud)

在这里;这是解决方案.