INSERT后,JTable隐藏了标头

时间:2016-03-07 03:20:36

标签: java mysql swing

所以我刚刚开始制作一个示例项目,在哪里可以插入连接到数据库的Employee和Department。当我尝试在我的字段上插入一些值时。按下“添加”按钮后,标题或列隐藏。任何帮助都会很感激!

CODES

   String inputEmployee = employeeTf.getText();
   String inputDepartment = departmentTf.getText();

   if(inputEmployee.isEmpty() && inputDepartment.isEmpty()){
         JOptionPane.showMessageDialog(null, "Please fill up!");
    }
    else if(inputEmployee.isEmpty()){
        JOptionPane.showMessageDialog(null, "Employee Name should not be left blank");
    }
    else if(inputDepartment.isEmpty()){
        JOptionPane.showMessageDialog(null, "Department should not be left blank");
    }
    else{
        DefaultTableModel model = new DefaultTableModel();
        jTable.setModel(model);
        Object[] row = new Object[2];

        String myQuery = "INSERT INTO SAMPLE (EMPLOYEENAME,DEPARTMENT) VALUES (?,?)";

        try{
            Connection myCon = DBUtilities.getConnection(DBType.JDBC);
            PreparedStatement myPs = myCon.prepareStatement(myQuery);

            myPs.setString(1, employeeTf.getText());
            myPs.setString(2, departmentTf.getText());

            row[0] = employeeTf.getText();
            row[1] = departmentTf.getText();

            myPs.executeUpdate();

            System.out.print("Record is inserted");


        } catch (SQLException ex) {
            DBUtilities.processException(ex);
       }     
        finally {
        try {
           if(myPs != null) myPs.close();
           if(myCon != null) myCon.close();
        } catch (SQLException e) {
            System.out.println("Error is: " + e.getMessage());
        }
    }

enter image description here

当我尝试在Employee字段中插入John和在Department字段中插入BSIT时。标题消失。

enter image description here

正如您在此处所见,标题/列消失了。我错过了什么?感谢

1 个答案:

答案 0 :(得分:1)

    DefaultTableModel model = new DefaultTableModel();
    jTable.setModel(model);

您创建一个没有任何列的新TableModel。不要创建新的TableModel。

而只是使用JTable中的当前TableModel(因为它已经包含列名)来添加新的数据行:

//DefaultTableModel model = new DefaultTableModel();
//jTable.setModel(model);
DefaultTableModel model = (DefaultTableModel)tTable.getModel();

然后,当您使用数据更新数据库时,您可以同时更新表。

myPs.executeUpdate();
model.addRow( row );

当然,这假设您实际上首先使用DefaultTableModel创建了JTable。