0

私のアプリケーションでは、ライセンス メカニズムの実装を使用しています。ライセンスの種類によっては、一部のメニュー項目を非表示にする必要があります。そして今、私は Mac OS X 10.6.2 で問題に遭遇しました。Java バージョン 1.6.0_15。メニュー項目は何があっても消えません。私はその機能を実装するメソッドをデバッグし、自分の目で見ました - 属性visibleが false になります! そして、このアプリケーションでそれを変更できるコードはありません。さらに-アプリは、最後のJREを使用したすべてのWindows-esと、Java 1.6.0_31で10.6.8に更新されたOS Xで正常に動作します。これはバグのある Apple の JVM ですか? そのような場合の最善の解決策は何ですか?

4

1 に答える 1

0

さて、SSCCE を作成しようとして失敗しました。JFrame の単純なサブクラスでは、すべて正常に動作します。アイテムは意図したとおりに消えます。しかし、代わりにこのドキュメントを見つけました。そしてそれは言います:

Radar #7420583
JMenuItems setVisible(false) は非表示になりません。
説明:
スクリーン メニュー バーは、setVisible(false) とマークされた JMenuItems を非表示にしませんでした。
解決策: この問題は解決されました。

予想通り、Apple のせいです。私に残されているのは、Mac OS X でランタイム バージョンを明示的に確認することです。その他の解決策は、コメントで歓迎します (Java のアップグレードを除く - それは私の責任範囲ではありません)。

于 2012-05-25T10:31:55.683 に答える