2011-07-27 58 views
4

我正在用菜單使用JMenuBar,JMenu和JMenuItem開發Java/Swing應用程序。如何捕捉單擊JMenu元素?

系統外觀和下降應用於用戶界面。

UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName()); 

我有我的菜單幾個頂級元素:

  • 的JMenu的「文件」工作正常,並允許用戶選擇子菜單像JMenuItems「新建」,「打開」 ...

  • 然後,我想添加第二個頂級元素「關於」(與「文件」相同的級別),當點擊它時顯示一個彈出窗口。

的問題很簡單:如何使此JMenu「關於」元素可點擊?

我嘗試幾種方法:

  1. 將 「關於」 元素作爲的JMenuItem。然而,這種元素有沒有,其他JMenu的項目,如「文件」

  2. 將「關於」元素作爲JMenu的並添加的MouseListener並在其上一個的KeyListener相同的用戶界面。該元素將具有與其他人相同的用戶界面,但我必須在「關於」彈出式窗口的「確定」按鈕上單擊兩次來捕獲此事件。

其他解決方案?

回答

4

我的第一個建議是在JMenu「關於」菜單中添加一個JMenuItem。因爲這與其他菜單的操作方式相同,並且看起來相同。當用戶點擊「關於」期待菜單但看到彈出窗口時,也不會感到意外。在菜單欄的最後有一個名爲「關於」的菜單項顯示一個彈出菜單的「幫助」菜單是相當普遍的。菜單標題在點擊時打開彈出窗口並不常見。

如果你真的要做你的建議,那麼:

  • 指定外觀和感覺(如雨雲),並修改的JMenuItem看起來像一個菜單項。

  • 查找你的第二個選擇的工作方式。這聽起來可行,但可能需要更多的調整,並且使系統界面與系統外觀和感覺一起工作會更加困難。
+1

我會同意,它是一個頂級菜單項打開對話框不好juju。 – Chris

+0

感謝您的回答。我將執行「幫助>關於」菜單,因爲它似乎是一個意大利麪條泥,使頂層「關於」菜單可以通過良好的用戶界面進行點擊。如果客戶同意這個解決方案,我會在稍後看到。再次感謝! – Sly