Добавление обработчика к нажатию кнопок

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

У меня такой вопрос: должен ли я добавлять код по отдельности к каждой кнопке или обслуживать каждое нажатие кнопки общедоступным методом, который вызывается при каждом нажатии кнопки? Если я использую общедоступный метод (что я предпочел бы сделать), как метод обнаруживает кнопку, вызвавшую функцию? Должны ли кнопки быть публичной переменной?

В настоящее время я использую этот код (это работает, мне интересно, могу ли я сделать это лучше):

loginButton.addActionListener(new ActionListener() {  
        public void actionPerformed(ActionEvent e)
        {
            System.out.println("You clicked the button");
        }});

1 ответ

Решение

Должен ли я добавлять код по отдельности к каждой кнопке или обслуживать каждое нажатие кнопки общедоступным методом, который вызывается при каждом нажатии кнопки?

На мой взгляд (и здравомыслие), я бы отделил слушателей / обработчиков действий. Вообще говоря, он делает отдельные действия / код простыми и точными.

Каждая кнопка / меню может иметь более одного слушателя действия, если это необходимо.

Я также взглянул бы на Action API

Если я использую публичный метод (что я бы предпочел сделать), как метод обнаруживает кнопку, вызвавшую функцию? Должны ли кнопки быть публичной переменной?

Если вы действительно хотите следовать этому методу, вы можете передать ActionEvent к нему, который будет содержать ссылку на источник действия, а также команду действия.

Лично я бы не стал. Такие методы общеизвестно сложны в управлении, обслуживании, отладке и обновлении.

Другие вопросы по тегам