2009-11-23 63 views
1

我有一個菜單,有幾個JCheckBoxMnuItems。我如何確保菜單保持打開狀態,直到我完成所有選擇(即檢查菜單項)並且在點擊其中一個菜單項時不關閉?Java菜單問題

回答

2

我寧可不要嘗試改變應用程序或菜單樹的一部分的正常菜單行爲。用戶期望菜單項被點擊後菜單自動關閉。而且,如果將菜單保持展開狀態,那麼在完成上次選擇後,您會發明什麼樣的操作來手動關閉它?

如果需要在一個用例中更改多個設置,那麼您應該考慮提供一個小對話框,使用該對話框可以應用更改並一次性確認它們。我相信,這與UI的典型行爲更加一致。

它declutters菜單欄,你只有一個「設置」菜單項,而不是一打(?)複選框行動:)

+0

感謝您重新發布我的帖子,以便更清楚地表明問題。沒有你的幫助,我會做什麼? ;) – pimpf0r

+0

啊com'on,我只是沒有讀你仔細回答。之後我意識到,這是你的忠告,但我不想刪除它。從我+1爲您的答案:) –

+0

更仔細地閱讀*你的*後,我剛剛意識到一個人在回答問題時必須更具說明性。 – pimpf0r

1

我想菜單不應該允許多選。 但是,您可以提供鍵盤快捷鍵來設置菜單項,而無需使用菜單。

如果您的標誌的設置操作是您的應用程序的中心方面,我傾向於在這裏使用對話框。這些都是不需要改變現有控制措施的內部實施的建議,儘管我知道,這將是可能的。

0

我同意,這是更好地與標準的用戶界面做到這一點。但是,如果你想補充一點,不要關閉菜單複選框它是非常容易:

JCheckBox checkBox = new JCheckBox("Text"); 
checkBox.setOpaque(false); 
checkBox.setRequestFocusEnabled(false); 
menu.add(checkBox); 

這可能不是每個外觀做工和手感和複選框不會在同一個菜單項排隊作爲JMenuItems的方式,但它似乎是一個合理的開始。