2017-03-23 4 views
1

現在、私は、XAMPPで作成されたDBと通信するJAVAプログラムに取り組んでいます。 私は、データベースからの情報を表示するために異なるJPanelを使用しており、ユーザーにデータを操作するためのさまざまなオプションを与えています。Java XAMPP conectivity

JPanelを拡張するEmployeePanelというクラスがあります。このクラスのコードは、Employee Tableに保存され、JTableに表示されるすべての情報をデータベースから取得します。 問題は、JAVAプログラムでデータを操作しているときに発生します。私は、JTableの中

cl.show(cardwrapper, "Employee"); 

情報は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メソッドからのコードです(私はすべての従業員を表示したいときは誰でも、私は最新の情報と私のJTableを作ることができる方法のアイデア、すべての時間を持っているDB

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

をエントリを削除した後actionPerformedメソッドが起動された?

答えて

2

をビューコンポーネントの囲みコンテナ、EmployeePanelを操作する必要はありません。代わりに、その場でJTableを残すそのTableModelを更新します。リスニングビューはそれに応じて更新されます。この完全なexampleでは、行の追加ボタンのActionListeneraddRow()を呼び出しますが、既存の行をクリアして、必要に応じて新しい行を追加することができます。 DefaultTableModelと仮定すると、setRowCount(0)を使用してすべての行を消去します。

image