Java XAMPP连贯性

时间:2017-03-23 15:36:09

标签: java eclipse xampp jtable jpanel

目前,我正在研究JAVA程序,该程序与使用XAMPP创建的DB进行通信。 我使用不同的JPanel来显示数据库中的信息,并为用户提供操作数据的不同选项。

我有一个名为EmployeePanel的类,它扩展了JPanel,此类中的代码检索数据库中的所有信息,这些信息保存在Employee Table中并显示在JTable中。 当我在JAVA程序中操作数据时会出现问题。例如,当我调用命令时  (从此表中删除员工后)

   cl.show(cardwrapper, "Employee");

JTable中的信息未从DB更新。

以下是从数据库中删除条目的代码。

public void DeleteNandoca(){
     try 
     {  
        Class.forName("com.mysql.jdbc.Driver");
        Connection connection = DriverManager.getConnection(url, userid, password);
    PreparedStatement st = connection.prepareStatement("DELETE FROM `employee` WHERE EMP_FNAME  ='"+NandocaToDelete+"'");
    st.executeUpdate(); 

     }
     catch(Exception e)
     {
         System.out.println(e);
     }
     new EmployeePanel();
        EmployeePanel.revalidate();
        EmployeePanel.repaint();
}

这是来自ActionPerformed方法的代码(当我想在删除DB中的条目后显示所有Employees

if (e.getSource() == ListEmployeesMenuItem) {
        cl.show(cardwrapper, "Employee");
        EmployeePanel.revalidate();
        EmployeePanel.repaint();
    }

任何人都有想法,每当ActionPerformed方法被触发时,如何使用更新的信息制作我的JTable?

1 个答案:

答案 0 :(得分:2)

不应该操纵视图组件的封闭容器EmployeePanel。相反,保留JTable in situ 并更新其TableModel;监听视图将自行更新。在这个完整的example中,添加行按钮的ActionListener会调用addRow(),但您可以根据需要清除现有行并添加新行。假设DefaultTableModel,请使用setRowCount(0)清除所有行。

image