Java에서 두 개의 상태, mousePressed 및 mouseReleased가있는 사용자 정의 버튼을 만들고 있습니다. 동시에이 버튼을 재사용하고 다른 이벤트 리스너가 등록 할 수 있도록하려면 적절한 조치를 취해야합니다 (이것은 JButton이 사용될 수 있지만 hw 지정이므로 우리는클래스를 Java에서 이벤트 소스로 만들기
- 재정의 addActionListener에 (의 ActionListener 액션)
- 재정의 removeActionListener (ActionListener를 동작)
목록 목록 = 새로운 목록 (같은 개인 변수가 : 우리가하는 JButton처럼 행동하는 우리 자신의 버튼을 만들 수 있다는 것을 보여) 이벤트가 추가 될 때를 추적하고 for 루프가 모든 액션을 수행 할 수있는 일종의 함수를 추적합니다. 여기까지 제가 가지고있는 것입니다 :
,Public 클래스 CustomButton 공공 정적 무효 메인 (문자열 []에 args) {{ EventQueue.invokeLater (신규의 Runnable() { 공개 무효 실행() { CustomButtonFrame 프레임 = 새로운 CustomButtonFrame(); frame.setDefaultCloseOperation (JFrame.EXIT_ON_CLOSE); frame.setVisible (true); } });
public void addActionListener(ActionListener al) { listenerList.add(al); } public void removeActionListener(ActionListener al) { listenerList.remove(al); } private void notifyListeners() { for (ActionListener action : listenerList) { action.actionPerfomed(); } } List<ActionListener> listenerList = new ArrayList<ActionListener>(); }
}
내가 컴파일 오류를 받고 있어요 : 라인 38 : 목록에 참조가 모호, 자바 java.util의 수업 java.awt.List의 두 클래스를 java.util.List가. awt 일치 목록 listenerList = new ArrayList();및 34 행 : 인터페이스 java.awt.event.ActionListener에서 actionPerfomed() 메소드를 찾을 수 없습니다. action.actionPerformed();
사용자 정의 버튼이 javax.swing.JButton 또는 이와 유사한 것을 상속합니까? 이 경우 사용자 지정 메서드를 전혀 추가하지 않아도됩니다. 그렇지 않으면 목록에 다른 사람들이 그것을 사용하는 데 필요한 모든 방법이 제공됩니다. –
같은 애플리케이션이나 다른 애플리케이션의 다른 버튼에서 동일한 버튼이나 동일한 메커니즘을 사용하고자하는지 설명 할 수 있습니까? 일단 당신이 정교하게되면 나는 대답을 추가 할 것이다 ... – TacB0sS