如何检查表是否在Jtable和JFrame中生成

时间:2014-01-11 19:04:20

标签: java swing jtable jframe

您好我想检查表是否添加了行。如果不是我想显示消息:先创建表。我的问题:我不知道应该输入什么if if语句来检查是否有一行(这可以建议我创建了表)。

我通过NetBeans JFrame选项以这种方式创建表:

jTable1.setModel(new javax.swing.table.DefaultTableModel(
            new Object [][] {
           /*
           space is empty here because on start I do not create any rows.
           user has to click button create or add rows. 
                                                                       */
            },
            new String [] {
                "Name", "Surname"
            }
        ));

我的if statment:

 if(//do not know what type here because new Object [][] will not work){
            JOptionPane.showMessageDialog(null, "Create table!");
        }else //add row to table because exist {
        Object[][] temp = new Object[data.length + 1][2];
        for (int i = 0; i < data.length; i++) {
            for (int j = 0; j < 2; j++) {
                temp[i][j] = data[i][j];
            }
        }
        data = temp;
        jTable1.setModel(new DefaultTableModel(data, columns));
    } 

1 个答案:

答案 0 :(得分:1)

看起来您正在使用NetBeans GUI构建器。如果您突出显示jTable的属性窗格(Netbeans设计视图中最右侧的选项卡),您将看到属性model

  • 单击属性右侧的 ... 按钮,将弹出一个对话框
  • 将行数设置为0,将列数设置为所需的列数,并设置列titletype以及是否需要editable

然后在您的actionPerformed中获取行的数据,使用model.addRow()

将该数据的数组添加到模型中
 public void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {
     // get row data, and put it into an array
     Object[] row = {data1, data2, data3 ...};
     DefaultTableModel model = (DefaultTableModel)jTable1.getModel();
     model.addRow(row);
 }

因此,只要按下按钮,就会在表格中动态添加一行。这是使用GUI Builder

执行此操作的最简单方法

修改

如果要检查行数,请检查rowCount

 DefaultTableModel model = (DefaultTableModel)jTable1.getModel();

 if (model.getRowCount() < 1) {
     do something.
 }