Я заполняю JTable из базы данных доступа. при первом запуске кода таблица отлично загружается. Затем добавление новых записей в базу данных из JDialog. То, что я пытался сделать, это вызвать метод loadData()
, когда JDialog закрыт, но таблица не обновляется.Как обновить 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)' to constructor method, а затем в метод конструктора, называемый методом loadData(). И моя таблица занимает некоторое время, чтобы загрузить. Итак, теперь я буду делать те же изменения, что и ваши примеры. –