Где лучше всего зарегистрировать слушателей JButtons, созданных из массивов? - PullRequest
3 голосов
/ 23 июля 2011

Я создаю несколько JButton-ов из массива String для меню.Эти кнопки созданы в классе, который расширяет JButton.При создании кнопки вызывают метод для создания некоторых дочерних кнопок (если родительская кнопка имеет подменю для отображения).

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

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

1 Ответ

6 голосов
/ 23 июля 2011

Я думаю, я знаю, что вас смущает.Эта статья: Теория и практика Java: будьте хорошим слушателем (события) заявляет, что регистрировать слушатель из его конструктора - это плохая практика, но они имеют в виду конструктор слушателя, а не конструктор кнопки.Должно быть хорошо зарегистрировать слушателя из конструктора JButton.Ваш слушатель, вероятно, будет анонимным внутренним классом или внутренним частным классом (или, если сложный, автономным классом), так что это на самом деле не проблема.

edit
За исключениему вас могут возникнуть проблемы, если вы сделаете это и затем создадите подклассы для своих кнопок.

...