0

我的应用程序使用了一些许可机制的实现。根据许可证类型,某些菜单项必须是不可见的。现在我在 Mac OS X 10.6.2 上遇到了问题。Java 版本 1.6.0_15。无论如何,菜单项都不会消失。我调试了实现该功能的方法并亲眼看到-可见属性变为错误!在这个应用程序中,没有任何代码可以改变它。甚至更多 - 应用程序在我使用最后一个 JRE 的所有 Windows 上运行良好,并且在使用 Java 1.6.0_31 更新到 10.6.8 的 OS X 上运行良好。这是一个有缺陷的 Apple JVM 吗?在这种情况下,最好的解决方案是什么?

4

1 回答 1

0

好吧,我尝试创建 SSCCE 并失败了。在 JFrame 的简单子类中一切正常。项目按预期消失。但相反,我找到了这个文件。它说:

雷达 #7420583
JMenuItems setVisible(false) 不隐藏。
说明:
屏幕菜单栏不会隐藏标记为 setVisible(false) 的 JMenuItem。
解决方案:此问题已解决。

正如我所料,这是苹果的错。剩下的就是明确检查 Mac OS X 上的运行时版本。欢迎在评论中提出任何其他解决方案(升级 java 除外——这不是我的职责范围)。

于 2012-05-25T10:31:55.683 回答