我在 Max OS X 10.7.5 上运行 Java 应用程序并使用 Java 7。我的应用程序有自己的菜单栏。当我单击一个菜单项时,它将带来一个对话框。问题是当我调用对话框时,整个菜单栏消失,在我关闭对话框菜单栏后出现。这个问题在 Java 6 上没有出现,仅在 Java 7 上出现。
有什么建议么?
您看到的菜单栏对应于当前活动窗口。由于您的对话框没有自己的菜单栏,因此当它是活动窗口时不会显示。然后当您的对话框关闭并且您的应用程序窗口变为活动状态时,将再次显示其菜单栏。
一种解决方案是使用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--