2011-06-14 4 views
1
JFrame myframe = new JFrame("My Sample Frame"); 
    JButton mybutton = new JButton("Okay"); 

누군가 나에게이 부분을 설명해 줄 수 있습니까?JFrame ActionListener

mybutton.addActionListener(new ActionListener(){ 

    public void actionPerformed(ActionEvent evt){ 

    //Assuming that the content here will do something. 

    } 
+2

방문 (http://stackoverflow.com/questions/5335161/how-does-this-method-work) –

답변

4

코드에 대해 정확히 이해하지 못합니까?

코드는 동작 수신기를 단추에 추가합니다. 버튼을 클릭하면 액션 리스너의 메소드 actionPerformed이 호출됩니다.

여기서 anonymous inner class이 사용됩니다.

+0

안녕하세요. 제스퍼에게 감사드립니다. 익명의 내부 클래스에는 익숙하지 않아 사실은 지금 막 알았습니다. . 감사합니다. 하나의 마지막 질문은 이러한 관행이 좋든 나쁘 든 말입니다. 나는 이벤트 리스너를 설정하는 방법을 의미합니다. – kebyang

+1

이것은 나쁜 관행이 아닙니다. 실제로 이벤트 핸들러를 설정하는 것은 일반적으로 사용자가 보여준 예제 에서처럼 익명 내부 클래스로 수행됩니다. – Jesper

2

버튼을 이벤트 (예 : 클릭)에 반응 시키려면 ActionListener이 있어야합니다. 당신이 게시 코드에서

, 당신은 일을 같은를 ActionListener

public void mySetupFunction(){ 

    mybutton.addActionListener(new ActionListener(){ 

    public void actionPerformed(ActionEvent evt){ 
     //Do something when the button is clicked 
    }); 
} 

를 구현하는 익명 클래스입니다 만드는 :

public void mySetupFunction(){ 

    mybutton.addActionListener(new MyEventHandler()); 
} 

로 :

public class MyEventHandler implements ActionListener{ 
    public void actionPerformed(ActionEvent evt){ 
     //Do something when the button is clicked 
    } 
} 
4

익명의 내부 클래스가 여기에 사용됩니다.

기술적으로 ActionListener를 구현했습니다. 당신이 addActionListener에 전화했을 때 :

mybutton.addActionListener(new ActionListener(){ 

public void actionPerformed(ActionEvent evt){ 

    //Assuming that the content here will do something. 

} 

을 당신은 익명 클래스, 또는 이름없이 ActionListener를 구현하는 클래스의 인스턴스를 생성. 당신이 정말로 "설명"하지 않았지만

같은 경우, this link .