簡體   English   中英

是否有一種更有效的方法來處理按鈕單擊事件而不是幾個if語句?

[英]Is there a more efficient way to handle button click events than several if statements?

所以,我會盡力解釋這個問題......

基本上,我有一個GUI,其主窗口上有幾個按鈕(可能大約10個)。 我將按鈕本身放在一個數組中,但是當涉及到處理每個按鈕的點擊事件時,根據點擊哪一個,會發生不同的事情。

而不是做這樣的事情:

@Override
public void actionPerformed(ActionEvent e) {
    if(e.getActionCommand().equals("Button1Text") { /* do stuff */ }
    else if(e.getActionCommand().equals("Button2Text") { /* do stuff */ }
    else if(e.getActionCommand().equals("Button3Text") { /* do stuff */ }
    else if(e.getActionCommand().equals("Button4Text") { /* do stuff */ }
}

點擊時是否有更有效的方法來處理每個按鈕的響應? 我們的想法是,無論何時點擊一個按鈕,都會打開一個新窗口,讓用戶執行與該按鈕相關的各種任務。 我想以某種方式將getActionCommand()Class.forName() / newInstance()方法結合使用,但我不確定是否還有其他(或更簡單)方法可以執行此類操作。

您顯示的ActionListener有時被稱為“交換機監聽器”,您認為可以對其進行改進是正確的。 這是非常嚴格的代碼,使得調試和增強變得困難。

我認為最好不要讓GUI實現ActionListener,而是為每個按鈕使用獨特的Actions(即AbstractActions),然后將相應的Action插入相應的按鈕。 要使用最小耦合進行插入,請考慮使用依賴注入Spring或Guice。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM