2013-05-07 2 views
0

Я запускаю приложение Java на Max OS X 10.7.5 и используя Java 7. У моего приложения есть своя панель меню. Когда я нажимаю один элемент меню, он вызывает диалог. Проблема в том, что когда я вызываю диалог, вся строка меню исчезает и после закрытия строки меню диалога появляется. Эта проблема не встречается на Java 6 и только на Java 7.Mac OS X Панель меню Java исчезает

Любые предложения?

+0

показать код. это очень поможет в решении проблемы. – user2277872

+0

System.setProperty ("apple.laf.useScreenMenuBar", "true"); Диалог JDialog = новый JDialog (этот, истинный) dialog.setvisisble (true) – Joe

+0

его, вероятно, потому, что вы меняете внешний вид яблочного меню. Вы пытались использовать значение по умолчанию? – user2277872

ответ

2

Строка меню вы видите, соответствует текущей деят e окно. Поскольку в диалоговом окне нет отдельной строки меню, ни один из них не покажет, когда это активное окно. Затем, когда ваше диалоговое окно закрывается и ваше окно приложения становится активным, его панель меню снова будет отображаться.

Одним из решений является использование setDefaultMenuBar(). Смотрите этот пример:

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

К сожалению, это не в настоящее время реализуется в Java 7. Таким образом, вы можете быть не повезло. Вот сообщение об ошибке для этой функции: http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=8007267

0

Вот пример того, кто-то делает то же самое, и рубильник ответа от данного code ranch

«В макинтош обычно мы не хотим, чтобы установить любой вид и feel.because макинтош принимает строку меню для это собственное. Так что вы не устанавливаете никакого внешнего вида и кода в коде для mac-реализации. Просто он дал это без кода внешнего вида и затем ... надеюсь, теперь он будет работать отлично. Потому что тот же вопрос, с которым я столкнулся в макинтош с качанием применения ....»

--ashok ---

+0

Я не задавал никакого внешнего вида и кода. – Joe

Смежные вопросы