각 셀에 버튼이 포함 된 큰 표가 있습니다. 이 단추는 매우 유사하며 거의 동일합니다. 나는이 방법으로 모든 버튼에 액션 청취자를 추가하는 경우 :ActionListener를 추가 할 수 있습니까? actionPerformed에 인수를 추가 할 수 있습니까?
tmp.addActionListener(new ActionListener(){
@Override
public void actionPerformed(ActionEvent evt) {
proposition = proposition + action;
SwingUtilities.invokeLater(new Runnable() {
public void run() {
updatePropositionPanel();
}
});
}
});
사실, 모든 액션 청취자는 action
의 값에 의해 다른 모든 다르다. proposition
및 updatePropositionPanel
은 클래스의 필드 및 메서드입니다.
처음에는 내부 클래스를 사용하지 않으면 짧게 만들 수 있다고 생각했습니다. 그래서 새로운 ActionListener 클래스를 프로그래밍하기로 결정했습니다. 그러나이 경우 "명제"가이 클래스의 인스턴스에 표시되지 않는다는 것을 깨달은 것보다.
그런 다음 actionPerformed 메서드를 현재 클래스에 추가하기로 결정했습니다.
addActionListener(this)
. 그러나 actionPerformed 메서드에 인수를주는 방법을 알지 못한다는 것을 깨닫는 것보다.
그래서 어떻게 작동합니까? 짧고 우아하게 액션 리스너를 추가 할 수 있습니까?
ADDED :
나는 생성자에 지정된 인수를 사용할 수있는 몇 가지 인수 및 actioPerformed 방법을 취할 수 생성자와 내부 클래스를 프로그램 아이디어를 좋아했다. 나는 그렇게하기 시작했고 다른 내부 익명 클래스들 (위의 코드 에서처럼 사용됨)과 충돌을 일으킨다는 것을 깨달았다. 그래서 나는 다른 클래스 (내부 클래스가 아닌)를 만들 것이라고 생각합니다.
각 버튼의 기능은 무엇입니까? –
버튼을 클릭하면 버튼이 원래 위치에서 사라지고 새 장소에 나타납니다. 버튼은 플레이어 중 하나에 속할 수 있으며 클릭을 통해 다른 플레이어에게 제공 될 수있는 "칩"을 나타냅니다. – Roman
내부 클래스가 익명 내부 클래스와 정확히 충돌한다는 것은 무엇을 의미합니까? – justkt