現在,當我有一個包含許多JComponents的表單時,主要有JTextFields,JTextAreas,JComboboxes,JCheckBoxes和JButtons,並且想要控制它們的行爲,例如某個鍵釋放後焦點的變化,我執行以下操作:與JComponents形式的聽衆
我將所有組件放在JComponent []中並循環,添加適當的偵聽器。當一個事件被所述監聽器註冊時,我用「instanceof」來檢查JComponent是什麼類型的事件並分配適當的反應。
我使用這個方法來實例在VK_ENTER通過窗體循環,或者在DocumentListener觸發之後循環到「firePropertyChange(..)」,或者添加UndoRedoListeners等等。
我的問題:有沒有更好的方法來做到這一點,如果是的話,你能向我解釋好處嗎?
如果['FocusManager'](http://docs.oracle.com/javase/7/docs/api/javax/swing/FocusManager.html)是不是答案,我不明白這個問題。 –
FocusManager是一個很好的提示,但我的問題涉及將所有JComponents放入數組並循環遍歷每個偵聽器和每個觸發事件的一般做法。它工作得很好,但感覺有點「不經濟」,所以我想知道是否推薦練習,或者有更好的方法。 –
聽起來像你在做什麼_basically_ wrong(從來沒有感受到這樣的願望/需要)退一步說明你想達到的目標(描述感知解決方案的問題) – kleopatra