2015-12-27 2 views
4

Я хочу добавить EventHandler для нескольких JButtons в Java. Я использую массив JButton JButton[] buttons = new JButton[120]. Я использовал это решениеОдин обработчик событий для нескольких JButtons

 for (int i=0; i<btns.length; i++){ 
     buttons[i].addActionListener(new ActionListener() { 
      public void actionPerformed(ActionEvent e) { 

      } 
     }); 
    } 

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

ответ

7

Использование пользовательских ActionListener:

CustomActionListener listener = new CustomActionListener(); 

for (int i=0; i<btns.length; i++){ 
    buttons[i].addActionListener(listener); 
} 

class CustomActionListener implements ActionListener { 
    public void actionPerformed(ActionEvent e) { 
     // Handle click on buttons 
     // Use e.getSource() to get the trigger button 
     JButton button = (JButton) e.getSource(); 
    } 
} 
+0

я последовал вашему решение, но внутри 'actionPerformed', команда ' e.getSource() SetText ("OK" 'выдает ошибку – dios231

+0

какая ошибка вы.. get? (Вы бросаете 'e.getSource()' в 'JButton' перед вызовом' .setText() '?) –

+0

Я реализую этот' class CustomActionListener реализует ActionListener { public void actionPerformed (ActionEvent e) { JButton btn = new JButton(); \t btn = (JButton) e.getSource(); \t btn.setText («ОК»); } } '. Но я все еще думаю, что этот код грязный. – dios231

Смежные вопросы