Проблема обновления родительского JFrame - PullRequest
0 голосов
/ 22 ноября 2010

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

У меня есть приложение, которое, возможно, из-за плохого дизайна, порождает новые JFrames через рабочий процесс пользователей. Мой вопрос: если в порожденном JFrame есть событие, может ли оно связаться и передать данные или событие своему родителю?

Я читал, что использование JDialog, кажется, способ проектирования, но давайте предположим, что это не вариант. По сути, JFrame1 содержит JTable со списком данных. Действие порождает JFrame2, и пользователь «делает что-то», что влияет на данные в списке в JFrame1. После закрытия JFrame2, есть ли способ управления JTable на основе события закрытия JFrame2?

Это довольно базовая концепция, я просто не могу найти механизм, который позволил бы такое действие.

Спасибо!

Ответы [ 3 ]

0 голосов
/ 22 ноября 2010

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

0 голосов
/ 22 ноября 2010

Помимо использования Window.addWindowListener () в JFrame или JDialog, рассмотрите возможность использования подхода с представлением моделиПусть событие close изменяет данные таблицы, а не саму таблицу.Используйте AbstractTableModel в качестве модели для таблицы и прослушивайте изменения данных.

0 голосов
/ 22 ноября 2010

Вы можете использовать «слушатели» для прослушивания различных событий.

Звучит так, как будто вы можете начать с Как написать оконный слушатель .

Я читал, что использование JDialog, кажется, способ проектирования, но давайте предположим, что это не вариант.

Почему? Код такой же, и JDialogs был разработан для этой цели. Какое конкретное требование говорит о том, что вам нужно использовать JFrame?

Действие порождает JFrame2, и пользователь «делает что-то», что влияет на данные в списке в JFrame1. После закрытия JFrame2, есть ли способ управления JTable на основе события закрытия JFrame2?

Это обычный дизайн. Пользователь выбирает строку для изменения или обновления, и создается диалоговое окно модели для отображения всех данных, чтобы их можно было изменить. Когда диалог сохранен, данные в таблице обновляются. Если это ваше требование, вы можете просто передать TableModel в диалог. Затем, когда диалоговое окно закрыто, вы обновляете TableModel, и таблица будет автоматически перекрашиваться.

...