2013-05-07 85 views
0

我在Max OS X 10.7.5上運行Java應用程序並使用Java 7.我的應用程序有自己的菜單欄。當我點擊一個菜單項時,它會帶來一個對話框。問題是當我調用對話框時,整個菜單欄消失,並且在關閉對話菜單欄後出現。這個問題在Java 6上看不到,只能在Java 7上看到。Mac OS X Java菜單欄消失

有什麼建議嗎?

+0

顯示代碼。它將對問題的不同有很大的幫助。 – user2277872 2013-05-07 14:52:47

+0

System.setProperty(「apple.laf.useScreenMenuBar」,「true」); JDialog dialog = new JDialog(this,true) dialog.setvisisble(true) – Joe 2013-05-07 15:00:06

+0

它可能是因爲你正在改變蘋果菜單欄的外觀和感覺。你有沒有嘗試過使用默認? – user2277872 2013-05-07 15:01:33

回答

2

你看到對應於當前ACTIV菜單欄電子窗口。由於您的對話框沒有自己的菜單欄,因此它不會顯示何時它是活動窗口。然後,當您的對話框關閉並且您的應用程序窗口變爲活動狀態時,它的菜單欄將再次顯示。

一個解決方案是使用setDefaultMenuBar()。看到這個例子:

Application app = Application.getApplication(); 
app.setDefaultMenuBar(myJMenuBar); 

不幸的是,這不是目前在Java 7中實現所以,你可能是出於運氣。以下是此功能的錯誤報告:http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=8007267

0

這裏是別人做同樣的事情的一個例子,從code ranch

給出「在MAC響應的切口通常我們不想設置任何外觀和feel.because MAC花費的菜單欄它是own.so你沒有設置任何外觀和感覺的代碼爲mac實現。只是給它沒有任何外觀和感覺的代碼...然後我希望現在它可以正常工作。因爲我面對同樣的問題在Mac與Swing應用程序......」

--ashok ---

+0

我沒有在代碼中設置任何外觀和感覺。 – Joe 2013-05-07 15:53:59