Max OS X 10.7.5 で Java アプリケーションを実行し、Java 7 を使用しています。アプリケーションには独自のメニュー バーがあります。1 つのメニュー項目をクリックすると、ダイアログが表示されます。問題は、ダイアログを呼び出すと、メニュー バー全体が消え、ダイアログを閉じるとメニュー バーが表示されることです。この問題は Java 6 では見られず、Java 7 でのみ見られます。
助言がありますか?
表示されるメニュー バーは、現在アクティブなウィンドウに対応しています。ダイアログには独自のメニュー バーがないため、アクティブ ウィンドウの場合は何も表示されません。次に、ダイアログが閉じてアプリケーション ウィンドウがアクティブになると、そのメニュー バーが再び表示されます。
1 つの解決策は、 を使用することsetDefaultMenuBar()
です。次の例を参照してください。
Application app = Application.getApplication();
app.setDefaultMenuBar(myJMenuBar);
残念ながら、これは現在 Java 7 では実装されていません。この機能のバグ レポートは次のとおりです: http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=8007267
これは、誰かが同じことをしている例と、コード牧場からの応答の切り抜きです。
「Mac では通常、ルック アンド フィールを設定したくありません。Mac は独自のメニューバーを使用するためです。そのため、Mac 実装のコードではルック アンド フィールを設定しません。ルック アンド フィールを何も設定しないだけです。コードを感じてください...それから、うまく動作することを願っています.なぜなら、私がMacでswingアプリケーションで直面したのと同じ問題だからです....」
--ashok---