Java/Swing应用无法在OS X上转换为全屏
我使用的是JOGLJava/Swing应用无法在OS X上转换为全屏,java,multithreading,macos,swing,fullscreen,Java,Multithreading,Macos,Swing,Fullscreen,我使用的是JOGLFPSAnimator和苹果的FullScreenUtilities类。我在一段时间前实现了这一点,效果很好。以下是我用于启用本机OS X全屏功能的代码,类似于SO和web上的其他代码: String className = "com.apple.eawt.FullScreenUtilities"; String methodName = "setWindowCanFullScreen"; try { Class<?> clazz = Class.
FPSAnimator
和苹果的FullScreenUtilities
类。我在一段时间前实现了这一点,效果很好。以下是我用于启用本机OS X全屏功能的代码,类似于SO和web上的其他代码:
String className = "com.apple.eawt.FullScreenUtilities";
String methodName = "setWindowCanFullScreen";
try {
Class<?> clazz = Class.forName(className);
Method method = clazz.getMethod(methodName,
new Class<?>[] { Window.class, boolean.class });
method.invoke(null, frame, true);
} catch ...
正如预期的那样,我得到的是进入
全屏事件,而不是进入
事件
这是一个相当大的程序,但应该有一个相当小的表面的东西,潜在的相关在这里。。。不幸的是,我没能找到他们。如果有人有任何建议,我会很高兴。这里展示了一个完整的示例。正如我所说,我的应用程序使用的代码与SO和web上其他地方的各种示例中的代码类似。。。我问题中的代码与该示例中的
enableOSXFullscreen(Window)
方法非常相似,该方法最初在一个普通的测试应用程序中有效,但不幸的是,现在在我的实际应用程序中无效。但感谢@trashgod,我想它提供了一个完整示例的更完整的上下文。Java 8,MacOS 10.11.3,对meLike来说似乎还可以,我说,基本方法是可行的,但是当在该上下文中调用时,我的应用程序中的“某些东西”出错,这意味着它没有完成转换。也许这样问不是合适的地方,因为我不能提供足够的信息让别人回答,但我希望有人会对可能导致锁在这里的事情有一些想法。。。必须与Swing/AWT线程相关…显示了一个完整的示例。如我所说,我的应用程序使用的代码与SO和web上其他地方的各种示例中的代码类似。。。我问题中的代码与该示例中的enableOSXFullscreen(Window)
方法非常相似,该方法最初在一个普通的测试应用程序中有效,但不幸的是,现在在我的实际应用程序中无效。但感谢@trashgod,我想它提供了一个完整示例的更完整的上下文。Java 8,MacOS 10.11.3,对meLike来说似乎还可以,我说,基本方法是可行的,但是当在该上下文中调用时,我的应用程序中的“某些东西”出错,这意味着它没有完成转换。也许这样问不是合适的地方,因为我不能提供足够的信息让别人回答,但我希望有人会对可能导致锁在这里的事情有一些想法。。。必须与Swing/AWT螺纹相关。。。
FullScreenUtilities.addFullScreenListenerTo(frame, new FullScreenAdapter() {
@Override
public void windowEnteringFullScreen(FullScreenEvent arg0) {
log(">>> Entering fullscreen... <<<");
}
@Override
public void windowEnteredFullScreen(FullScreenEvent arg0) {
log(">>> Entered fullscreen. <<<");
}
});