我目前正在開發一個桌面應用程序。我有菜單欄,其中帶有ALT-R助記符的RUN命令。此外,我有一個運行按鈕在其中一個框架&我已經宣佈一個ActionListener相同。有沒有辦法使用相同的ActionListener作爲運行命令menu-item ..?還是應該再次重申聲明..?如何在不同的類中使用動作偵聽器?
1
A
回答
0
如果您從第一堂課開始第二堂課,那麼您可以將您實施ActionListener
的班級轉到第二堂課。即
class A implements ActionListener{
@Override
public void actionPerformed(ActionEvent ae) {
//--- coding.........
}
//--- Somewhere in this class
B b=new B(this);
}
class B{
A a;
public B(A a){
this.a = a;
}
//-- now use this.a where you wanna set actionListener
}
或者你也可以很容易地把它作爲:
class B{
//-- Where you want to add ActionListener
button.addActionListener(new A());
}
+0
i thnk dis是如何做到這一點的。我們不得不重新聲明局部變量,全局都是類的......感謝支持..! – 2011-04-21 13:02:35
0
class ActionL implements ActionListener{
// Here to override
public void actionhapp(ActionEvent ae) {
// do your code
}
BAction b=new BAction(this);
}
class BAction{
ActionL a;
public BAction(A a){
this.a = a;
}
}
這裏是辦法u能做到
+2
如果您複製我的答案,但至少更改名稱正確.....不擔心; ;-) – 2011-04-21 12:40:38
2
考慮存儲在靜態地圖中的所有聽衆。他們的邏輯必須是獨立於任何「外部類」,可以肯定的,因爲他們必須在任何情況下運行:
public static Map<String, ActionListener> listeners = new HashMap<String, ActionListener>();
static {
listener.put("RUN", new ActionListener() {
// implementation of the "Run" actionlistener
});
// more listeners
}
,稍後:
something.addActionListener(SomeManager.listeners.get("RUN"));
0
其實另一種選擇是使用ActionLister並在包含按鈕和其他對象的類上進行設置,或者甚至使用每個UI小部件的ActionListener,然後僅向包含該邏輯的類發出調用。就責任而言,這對我來說似乎有點乾淨。
JButton myButton = new JButton("RUN");
myButton.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent ae) {
myLogicClass.executeRun();
}
};
public class MyLogicClass {
public void executeRun() { //or parms if you need it.
//do something in here for what you want to happen with your action listener.
}
}
這讓我感覺更乾淨,因爲它試圖將UI和邏輯保持在不同的類中。但它也取決於你想做什麼「做某事」。
相關問題
- 1. 如果偵聽器與我的Activity不在同一個類中,如何使用asyncTask +位置偵聽器?
- 2. 如何使用偵聽器/偵聽器捕獲所有動作事件
- 3. 在主類中重複使用動作偵聽器和jframe
- 4. 如何在實現動作偵聽器時設置不同的動作命令?
- 5. 在動作偵聽器偵聽事件後,Java gui不打印
- 6. 如何使用動作偵聽器中設置的變量
- 7. Lua Corona - 如何在滑動過程中偵聽widget.newScrollView偵聽器
- 8. 如何在動作監聽器上控制焦點偵聽器?
- 9. 按鈕的ActionListener調用在同一類中的另一動作偵聽器
- 10. 動作偵聽器:在Java中
- 11. 如何使用動作偵聽器重新啓動屏幕?
- 12. 鼠標偵聽器和動作偵聽器的區別?
- 13. 如何在另一個類的活動中設置偵聽器?
- 14. 「滾動」事件偵聽器不工作
- 15. 在一個類中的Java動作偵聽器和圖像
- 16. Java:如何註冊偵聽JFrame運動的偵聽器
- 17. 在Netbeans添加動作偵聽器
- 18. 在自定義按鈕類中定義動作偵聽器
- 19. <a4j:commandLink>不調用動作和動作偵聽器
- 20. 添加inputText時不會調用動作和動作偵聽器
- 21. 添加帶動作偵聽器的按鈕時不允許使用void類型?
- 22. 在不使用動作偵聽器的情況下使用JSF 2.0執行AJAX
- 23. 如何在Java中使用類似偵聽器的方法使用協議
- 24. 如何使用CompositeItemProcessor註冊偵聽器
- 25. 如何讓偵聽器偵聽TreeMap中的更改?
- 26. console.log和.scroll偵聽器不起作用
- 27. OnTouch偵聽器不工作在片段
- 28. 在偵聽器方法中使用GC
- 29. 如何在adf中處理客戶端偵聽器之前處理動作偵聽器方法
- 30. 使用Polymer中的原型偵聽器屬性來偵聽兒童財產更改通知器不起作用
這些類是孤立的。此外,班級中使用的本地/私有變量會發生什麼? – 2011-04-21 12:33:22