2013-11-04 3 views
0

Я тестирую приложение, которое непосредственно реализует ActionListenerКачели actionPerformed метод

Ниже приложение может быть скомпилирована и запущена:

public class App implements ActionListener { 

JButton button; 
int count = 0; 

public static void main (String[] args) 
{ 
    App gui = new App(); 
    gui.go(); 
} 

public void go() 
{ 
    button = new JButton("Click me!"); 
    JFrame frame = new JFrame(); 
    frame.getContentPane().add(button); 
    frame.setSize(500,500); 
    frame.setVisible(true); 
    frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 

    button.addActionListener(new ActionListener(){ 

     public void actionPerformed(ActionEvent event) 
     { 
      count++; 
      button.setText("I've been clicked "+count+" times"); 
     } 
    }); 

} 

} 

Но Затмение хочет метод

public void actionPerformed(ActionEvent e) { 
    // TODO Auto-generated method stub 

} 

в App классе также. это потому, что метод «go» иногда не может быть вызван, чтобы сделать actionPerformed не вызванным, а затем против того, как работает реализация? Заранее благодарим за любую помощь.

+1

Если вы не собираетесь реализовать 'метода actionPerformed', то вам не нужен' инвентарь ActionListener' – MadProgrammer

+0

Remove 'реализует ActionListener' из вашего класса App декларация. – Sambuca

ответ

3

Это просто из-за правила java для реализации интерфейса. ActionListener интерфейс имеет actionPerformed способ в этом. Поэтому любой класс, реализующий этот интерфейс, должен обеспечить реализацию для actionPerformed.

Подробнее об использовании ActionListener здесь: http://docs.oracle.com/javase/tutorial/uiswing/events/actionlistener.html

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