На самом деле у меня есть JFrame (главное окно) с JTable. И пара кнопок типа Добавить,Удалить,Обновить.
Обновить использует функцию (updateTable), которая имеет следующий код ниже и отлично работает:
try
{
ResultSet R = Home.getStatement().executeQuery("Select * from Schooldata");
int count =0;
while(R.next()) { count++; }
school_data = new String[count][6];
R = Home.getStatement().executeQuery("Select Schoolname,city,ProgramOpted,coordinator_name,Trainers,contactnum from Schooldata");
count =0;
while(R.next())
{
for(int i=0;i<6;i++)
{ school_data[count][i]= R.getString(i+1);
System.out.println(R.getString(i+1));
}
count++;
}
}
catch(SQLException S) {JOptionPane.showMessageDialog(null,S);}
jTable1.setModel(new DefaultTableModel(school_data,new String [] {
"School Name", "City", "Program", "Coordinator", "Trainers", "Contact Number"
}));
Когда я нажимаю «Добавить», появляется другое окно JFrame и запрашивает сведения, которые далее сохраняются в базе данных, показывает сообщение с подтверждением и обновляет таблицу (в другом JFrame, т.е. в главном окне) с использованием вышеуказанной функции.
Проблема в том, что я вызываю ту же функцию, но из другого JFrame. Ожидая, что изменения будут отражены в основном JFrame.
Используя метод new Main().updateTable(); в приведенном ниже коде, он просто не работает.
try
{
int confirm = Home.getStatement().executeUpdate(Query);
if(confirm == 1)
{
JOptionPane.showMessageDialog(null,"Record Added","Saved",1);
new Main().updateTable();
}
else JOptionPane.showMessageDialog(null,"There is some Error.....","Error",0);
}
catch(SQLException S)
{
JOptionPane.showMessageDialog(null,S,"Error",0);
}