Компоненты событий Swing - PullRequest
3 голосов
/ 21 марта 2012

У меня есть класс меню под названием Menu, который определяет JFrame, этот класс создает два объекта JPanel, которые содержат текстовые поля и кнопки.Внутри каждого расширяющего класса JPanel есть закрытый внутренний класс, который обрабатывает события, инициируемые нажатием кнопок.

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

Не могли бы вы добавить слушателя в JPanel в классе Menu и сделать что-то подобное?:

if(event.getSource() == panel.getButton1()){ 
    //do button1 code 
} 

Ответы [ 2 ]

3 голосов
/ 21 марта 2012

JPanels и фактически все компоненты Swing имеют поддержку изменения свойств, поэтому вы можете легко добавить PropertyChangeListener к любому Компоненту и прослушивать изменения состояния. Просто убедитесь, что в коде, состояние которого меняется, на вызов firePropertyChange(...) после изменения состояния.

1 голос
/ 21 марта 2012

Вы всегда можете добавить слушатели к компонентам (например, ActionListener экземпляры) и обработать их.

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...