我從訪問數據庫填充JTable。當第一次運行代碼時,表格加載完美。然後從JDialog向數據庫添加新記錄。我試圖做的是在JDialog關閉時調用loadData()
方法,但表不更新。如何在向數據庫插入數據後刷新JTable?
這是我loadData()
方法:
private void loadData() {
System.out.println("sssss");
final String [] columnNames={"Seq", "First Name", "Last Name","Num1","Num2","Num3"};
connectDb();
data = new Object[rows][columns];
int row = 0;
try {
while(rs.next()){
for(int col = 0 ; col<columns; col++){
if(col==0)
data[row][col]=rs.getString("contact_seq");
if(col==1)
data[row][col]=rs.getString("contact_fname");
if(col==2)
data[row][col]=rs.getString("contact_lname");
if(col==3)
data[row][col]=rs.getString("contact_num1");
if(col==4)
data[row][col]=rs.getString("contact_num2");
if(col==5)
data[row][col]=rs.getString("contact_num3");
}
row++;
}
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
model = new DefaultTableModel(data, columnNames){
/**
*
*/
private static final long serialVersionUID = 1L;
public boolean isCellEditable(int row, int column)
{
return false;
}
};
table = new JTable(model);
}`
這個我怎麼稱呼loadData方法關閉的JDialog時。
JMenuItem mntmNew = new JMenuItem("New Contact");
mntmNew.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
addData gui = new addData(viewData.this,rs);
gui.setDefaultCloseOperation(JFrame.HIDE_ON_CLOSE);
gui.setVisible(true);
gui.addWindowListener(new WindowAdapter() {
public void windowClosed(WindowEvent e){
loadData();
}
});
}
});
mnFile.add(mntmNew);
我的數據庫在添加記錄時更新,但Jtable沒有刷新。
謝謝dic19。這對我有用。我在構造函數方法中添加了'table = new JTable(model)',然後在構造函數方法中添加了'loadData()'方法。我的桌子需要一些時間來加載。所以現在我要做和你的例子一樣的改變。 – 2014-12-05 03:56:51