2016-04-22 4 views
0

Добрый день!Обновление JTable при закрытии окна

У меня есть основная программа (назовем ее window1), которая отображает JTable и заполняется данными в базе данных SQL. Когда вы дважды щелкните по JTable, он открывает новое окно (назовем его окном2), которое позволяет пользователю редактировать базу данных.

Я хотел бы добавить windowListener в окно2, чтобы при закрытии он сообщает window1, чтобы заселить JTable, содержащуюся там.

Я попытался оглянуться на события в окне и попытался выяснить, как их использовать, но я просто не понимаю его. Если вам нужны определенные части моего кода, не стесняйтесь спрашивать.

У меня есть метод в моей основной программе, который первоначально обновляет JTable, когда загружается окно1, но нужно выяснить, как вызвать этот метод, когда window2 закрывается.

Заранее благодарен!

+1

'Я попытался оглянуться на события в окне и попытался выяснить, как их использовать, но я просто не понимаю его ...' Начните с раздела из учебника Swing по [Как написать WindowListener]() для рабочего примера. Однако я не рекомендую WindowListener для этого. Тем не менее, держите ссылку на учебник доступной для этой и других основ Swing. – camickr

+1

Моральный диалог, модальный диалог, модальный диалог, любой другой ответ - просто тратить время – MadProgrammer

ответ

2

Что именно у вас есть в окне2? Может быть, любая кнопка подтверждения? Если это так, вы можете вызвать метод обновления JTable внутри прослушивателя для этой кнопки.

+0

Я действительно. У меня есть кнопка «добавить», «обновление» и «удалить». Я попытаюсь выполнить эту работу с помощью кнопки «Обновить». Я об этом не думал ... Спасибо! –

+0

Хотя это был не тот ответ, который я искал, это решило мою проблему, используя более простой способ ее решения. Так. Ты великолепен. –

+0

Рад, что я могу помочь! –

2

Я хотел бы добавить windowListener в window2, чтобы при закрытии он сообщает window1, чтобы заново заполнить JTable.

Трудная часть всего этого не является передачей информации - это может быть достигнуто просто с помощью методов getter и setter. Нет трудности, обычно зная , когда передает информацию, и для этого у вас есть один из двух вариантов.

  • Самый простой на сегодняшний день, чтобы иметь window2 не быть JFrame, но быть модальный JDialog. Это похоже на JFrame и может содержать все, что хранится в JFrame, но заморозит поток программы в главном окне, пока диалоговое окно больше не будет видно. Как только это произойдет, поток программы возобновится в основной программе, и вы можете запросить данные, хранящиеся в диалоговом окне, и использовать данные для обновления JTable.
  • Еще один сложный вариант - сделать window2 немодальным JDialog, и если вы пройдете этот маршрут, вам нужно будет добавить WindowListener (см. Ссылку) - я не рекомендую это, если вы можете Помоги.
Смежные вопросы