2010-03-09 2 views
1

를 확인할 수 없습니다. 나는 방금 책에서 발견 된 (단순화 된) 예를 만들었고 무엇이 잘못 될 수 있는지를 모른다. 지식 눈 필요! :)객체는이 코드를

+1

인지 확인. http://java.sun.com/javase/6/docs/api/javax/swing/JFrame.html – trashgod

답변

2

피 누른 어떤 버튼에 따라 당신의 ActionListener의 작용을 갖는. 다른 버튼에 다른 액션이있는 경우 각 액션에 대해 별도의 ActionListener를 정의하십시오.

그러면 청취자는 어떤 버튼을 눌렀는지 확인할 필요가 없습니다.

public void actionPerformed(ActionEvent event){ 

    System.out.println("Hello"); 
} 
3

button 개체는 ButtonHandler 클래스에서 볼 수 없습니다. Window 생성자의 로컬입니다. 해당 필드를 Window으로 만들거나 ActionEvent에서 어떤 명령이 의도 된 것인지 확인할 수 있습니다. 자세한 내용은 tutorial을 참조하십시오.

부록은 예를 들어

if ("OK".equals(event.getActionCommand())) { ... 
+1

클래스에 표시되지 않는다고 생각하셨습니까? ButtonHandler – objects

+0

고마워요! 답변이 수정되었습니다. – trashgod

1

단추 처리기가 응답하는 단추를 인식하지 못하게되어 있지만 동일한 개체를 사용할 수 없게됩니다.

은 수퍼 클래스 중 하나 후에 클래스 이름을 혼동 할 수 있으며, 버튼 오브젝트를 새로운 생성자 여담으로하는 키

//... 
ButtonHandler handler = new ButtonHandler(button); 
//... 

하고

private class ButtonHandler implements ActionListener { 
    private JButton button; 

    ButtonHandler(JButton button) { this.button = button; } 

    public void actionPerformed(ActionEvent event){ 

    if (event.getSource() == button){ // <--- "button can not be resolved" 
     System.out.println("Hello"); 

    }     
}