Добавление обработчика к нажатию кнопок
У меня есть много форм GUI со многими кнопками на каждой форме GUI. Я хочу определить, когда пользователь нажимает на любую из этих кнопок.
У меня такой вопрос: должен ли я добавлять код по отдельности к каждой кнопке или обслуживать каждое нажатие кнопки общедоступным методом, который вызывается при каждом нажатии кнопки? Если я использую общедоступный метод (что я предпочел бы сделать), как метод обнаруживает кнопку, вызвавшую функцию? Должны ли кнопки быть публичной переменной?
В настоящее время я использую этот код (это работает, мне интересно, могу ли я сделать это лучше):
loginButton.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e)
{
System.out.println("You clicked the button");
}});
1 ответ
Должен ли я добавлять код по отдельности к каждой кнопке или обслуживать каждое нажатие кнопки общедоступным методом, который вызывается при каждом нажатии кнопки?
На мой взгляд (и здравомыслие), я бы отделил слушателей / обработчиков действий. Вообще говоря, он делает отдельные действия / код простыми и точными.
Каждая кнопка / меню может иметь более одного слушателя действия, если это необходимо.
Я также взглянул бы на Action API
Если я использую публичный метод (что я бы предпочел сделать), как метод обнаруживает кнопку, вызвавшую функцию? Должны ли кнопки быть публичной переменной?
Если вы действительно хотите следовать этому методу, вы можете передать ActionEvent
к нему, который будет содержать ссылку на источник действия, а также команду действия.
Лично я бы не стал. Такие методы общеизвестно сложны в управлении, обслуживании, отладке и обновлении.