2013-05-12 1 views
-1

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

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

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

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

* «Я хочу обнаружить, когда пользователь нажимает на любую из этих кнопок». * Тогда вам обычно нужно определить, какую кнопку нажать, чтобы для принятия соответствующих мер. По этой причине обычно считается, что лучше использовать один элемент «ActionListener» или «AbstractAction» для каждой кнопки/пункта меню. –

+0

Отметив, что 1 вопрос теперь расширился до 3 вопросов: лучше всего ограничить его одним вопросом в каждом вопросе. И, пожалуйста, не забудьте добавить вопросительный знак. –

+0

посмотреть, можно ли использовать ActionEvent для получения цели. научиться работать с sdk – qwr

ответ

1

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

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

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

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

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

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

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