我有兩個JButtons
叫做「左」和「右」。 「左」按鈕將矩形對象向左移動,「右」按鈕將其向右移動。 我有一個ActionListener
在充當任何一個按鈕被點擊時的監聽器。 但是,我希望每次點擊時都會發生不同的操作。我如何區分ActionListener
之間點擊哪個?一個動作監聽器,兩個JButtons
回答
設置actionCommand到每個按鈕。
//將動作命令設置爲兩個按鈕。
btnOne.setActionCommand("1");
btnTwo.setActionCommand("2");
public void actionPerformed(ActionEvent e) {
int action = Integer.parseInt(e.getActionCommand());
switch(action) {
case 1:
//doSomething
break;
case 2:
// doSomething;
break;
}
}
UPDATE:
public class JBtnExample {
public static void main(String[] args) {
JButton btnOne = new JButton();
JButton btnTwo = new JButton();
ActionClass actionEvent = new ActionClass();
btnOne.addActionListener(actionEvent);
btnTwo.addActionListener(actionEvent);
btnOne.setActionCommand("1");
btnTwo.setActionCommand("2");
}
}
class ActionClass implements ActionListener {
@Override
public void actionPerformed(ActionEvent e) {
int action = Integer.parseInt(e.getActionCommand());
switch (action) {
case 1:
// DOSomething
break;
case 2:
// DOSomething
break;
default:
break;
}
}
}
的
我覺得這個一般更優雅。謝謝! – CodyBugstein
雖然只有一秒,這是否需要ActionListener在同一個類中? – CodyBugstein
定義一個ActionListener類。在UI類中聲明操作類的對象。使用addActionListener方法設置每個按鈕actionListener,並將此操作類引用添加爲param,最後將操作命令設置爲它們中的每一個。 – Amarnath
很易於使用ActionEvent
可用getSource()
方法:
JButton leftButton, rightButton;
public void actionPerformed(ActionEvent e) {
Object src = e.getSource();
if (src == leftButton) {
}
else if (src == rightButton) {
}
}
- 1. Java動作監聽器和JButtons
- 2. AS3:一個Click事件監聽器的兩個動作
- 3. 兩個動作在一個onlongclick監聽器android按鈕
- 4. 在一個類中的窗口監聽器和動作監聽器JAVA
- 5. 動作監聽器
- 6. 實例,枚舉或JButtons的多個監聽器
- 7. 如何爲同一動畫設置兩個動畫監聽器?
- 8. 製作一個Hashtag監聽器
- 9. Clojurescript添加一個活動監聽器
- 10. 設置一個監聽器,幀動畫
- 11. codename一個容器與動作監聽器
- 12. Laravel監聽器監聽多個事件
- 13. 在android中單擊兩個監聽器
- 14. 爲UIResponder添加兩個監聽器
- 15. 監聽器調用另一個監聽器
- 16. 在Android的另一個監聽器中定義監聽器
- 17. Java動作監聽器
- 18. JButton動作監聽器
- 19. 動作監聽器錯誤
- 20. 添加動作監聽器
- 21. 全局動作監聽器
- 22. 動作監聽器故障
- 23. 一個類中的多個監聽器
- 24. 返回一個JButtons動作偵聽器,以便其他類可以使用它
- 25. 一次用libpcap監聽兩個設備
- 26. java中的一個按鈕兩個監聽器
- 27. 動作監聽器 - 從另一個文件進行連接
- 28. 用動作監聽器打開另一個類
- 29. 向JButton添加一個動作監聽器
- 30. Android動作監聽器調用另一個類中的方法
可能重複[?爪哇 - 處理多個事件與一個函數(http://stackoverflow.com/questions/501533/java-handle-multiple-事件一功能) –