我是Java新手,我正在編寫NetBeans。問題是,無論何時我禁用控制 即jmenu.setEnabled(false),它仍會觸發事件!哇靠!怎麼樣! :PJava問題,禁用控件仍然會觸發事件!
我該如何預防?
我是Java新手,我正在編寫NetBeans。問題是,無論何時我禁用控制 即jmenu.setEnabled(false),它仍會觸發事件!哇靠!怎麼樣! :PJava問題,禁用控件仍然會觸發事件!
我該如何預防?
爲了適應Swing採用的事件模型,我認爲您最好的選擇是在處理程序中添加一個isEnabled()檢查,您不希望在組件被禁用時執行該檢查。
是啊,也這麼想;帶了我一陣子。編程在C#讓我懶惰在低級別的東西 – Arturo 2010-08-14 22:29:38
從javadoc:
注:禁用輕量級組件 並不妨礙它 接收MouseEvents。
注意:禁用重量級 容器會阻止此容器中的所有組件接收任何 輸入事件。但禁用輕量級容器只會影響此容器的 。
您可能想查看disableEvents(long mask)。
考慮使用javax.swing.Action
控制的Swing組件。
通過這種方式,您可以直接使用Action.setEnabled
來禁用操作。其組件將自動採用其狀態。當以這種方式禁用時,組件將不會收到MouseEvent。
請參閱有關構造函數JButton(Action)
的文檔。
「東西」?和什麼控制? – bakkal 2010-08-14 15:28:41
任何控制我已經使用到目前爲止,如jmenu,jbutton – Arturo 2010-08-14 15:30:16
哪些事件?你可以發佈更多的代碼嗎? – 2010-08-14 15:33:00