我从访问数据库填充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