在Mac OS下以选项卡形式打开新窗口时,是否有Java/Swing错误的解决方法
我正在为Mac和Windows开发一个基于swing的Java应用程序(Java8)。一些用户已将“常规”“打开文档时首选选项卡”下的mac系统首选项设置为“始终”或“全屏”。当设置设置为“从不”时,它将正常工作 此设置会导致窗口打开一个新选项卡的奇怪状态,导致冻结的应用程序只能强制退出。我不能假设用户知道Mac OS系统首选项中的隐藏设置 有三种解决方案对我有效:在Mac OS下以选项卡形式打开新窗口时,是否有Java/Swing错误的解决方法,java,macos,swing,Java,Macos,Swing,我正在为Mac和Windows开发一个基于swing的Java应用程序(Java8)。一些用户已将“常规”“打开文档时首选选项卡”下的mac系统首选项设置为“始终”或“全屏”。当设置设置为“从不”时,它将正常工作 此设置会导致窗口打开一个新选项卡的奇怪状态,导致冻结的应用程序只能强制退出。我不能假设用户知道Mac OS系统首选项中的隐藏设置 有三种解决方案对我有效: 是否找到任何解决方法来防止该窗口以选项卡形式打开其他窗口 启动我们的捆绑Java应用程序时,会使用一些标记来禁用整个应用程序
- 是否找到任何解决方法来防止该窗口以选项卡形式打开其他窗口
- 启动我们的捆绑Java应用程序时,会使用一些标记来禁用整个应用程序的这种行为
- 检测此mac系统设置是否已启用,然后警告用户并退出应用程序(这不是一个好的解决方案)
defaults write net.java.openjdk.cmd "AppleWindowTabbingMode" manual
或者,如果您在自己的应用程序中捆绑了java,请在应用程序Info.plist文件中使用CbundleIdentifier的值
e、 g
我意识到这是一个愚蠢的、反问的问题,但是,您确定问题不在您的[java]代码中吗?您的Swing应用程序是否使用?从您问题中的屏幕截图我不清楚,但是您的Swing应用程序是否包含
JTabbedPane
?是的,不是这样。当我将mac设置更改为“打开窗口时首选选项卡”为“从不”时,窗口将作为一个单独的窗口打开(如预期)。尽管如此,考虑张贴A,以便其他人能够重现你的问题,这可能会帮助某人找到解决方案。我可以确认这是一个问题,我也有,因为更新到BigSur,这不是一个问题,在代码中,很抱歉,除了将prefertabs选项设置为never的变通方法之外,我目前没有任何解决方案。我们现在将捆绑的JDK更新为Java15,并且在大多数情况下,问题已经解决。有时,虽然新的JDialogs仍然以选项卡的形式打开,但我不知道原因是什么。这是目前最好的解决方法,但三个选项是“始终”、“全屏”或“手动”(而不是“从不”)。我们正在使用一个捆绑的JRE,因此我们必须用我们的mac CbundleIdentifier交换“net.java.openjdk.cmd”,谢谢您的更正
defaults write net.myapp.com "AppleWindowTabbingMode" manual