Полноэкранный режим для приложений Java на OSX Lion - PullRequest
20 голосов
/ 29 июля 2011

Как (изначально) реализовать полноэкранный режим OSX Lion в приложении Java?

Текущие ответы дают хороший метод для достижения полноэкранного режима. Я читал, что Eclipse может использовать «родную» полноэкранную функцию Lion. Вот о чем я спрашиваю.

Ответы [ 6 ]

28 голосов
/ 01 января 2012

Я нашел это в примечаниях к выпуску Java от Apple:

Полноэкранная поддержка Mac OS X 10.7 Lion

Java-приложения на Lion теперь могут использовать функцию полноэкранного окна для каждого окна. Разработчики могут использовать класс com.apple.eawt.FullScreenUtilities , чтобы пометить окна как полноэкранные, и метод com.apple.eawt.Application.requestToggleFullScreen (Window) для программно запросить окно входа и выхода из полноэкранного режима. Этот API ничего не делает в Mac OS X 10.6 Snow Leopard.

Более конкретно, попробуйте вызвать это на ранней стадии из конструктора ваших JFrame s ...

/**
 * @param window
 */
@SuppressWarnings({"unchecked", "rawtypes"})
public static void enableOSXFullscreen(Window window) {
    Preconditions.checkNotNull(window);
    try {
        Class util = Class.forName("com.apple.eawt.FullScreenUtilities");
        Class params[] = new Class[]{Window.class, Boolean.TYPE};
        Method method = util.getMethod("setWindowCanFullScreen", params);
        method.invoke(util, window, true);
    } catch (ClassNotFoundException e1) {
    } catch (Exception e) {
        log.log(Level.WARNING, "OS X Fullscreen FAIL", e);
    }
}
6 голосов
/ 29 июля 2011

Я не знаю о нативном, но Java поддерживает полноэкранные приложения без необходимости нативного кода:

http://saipullabhotla.blogspot.com/2012/05/enabling-full-screen-mode-for-java.html

Вопрос в том, реализовал ли Apple это с Lion в JDK.

2 голосов
/ 09 октября 2015

Для тех из вас, кто не против быстрого и грязного решения:

Вызовите getRootPane().putClientProperty("apple.awt.fullscreenable", Boolean.valueOf(true)) из конструктора Frame. Это то, что делает setWindocCanFullScreen.

1 голос
/ 13 декабря 2013

То, что вы пытаетесь сделать, можно сделать через библиотеку com.apple.eawt .Кроме того, чтобы избежать написания кода с помощью рефлексии, если вы также развертываете свое приложение в других ОС, таких как Windows, Linux и т. Д., Вам следует использовать и распространять встроенный в ваше приложение AppleJavaExtensions.jar от Apple.

Это способ сделать рамку расширяемой в полноэкранном режиме:

FullScreenUtilities.setWindowCanFullScreen(window,true);

А это метод переключения полноэкранного режима:

Application.getApplication().requestToggleFullScreen(window);

, где параметр window - это JFrame вашего приложения, которое вы пытаетесь сделать полноэкранным.

Чтобы увидеть пример приложения, взгляните на RationalPlan Project .

0 голосов
/ 13 августа 2011

Пожалуйста, отправьте отчет об ошибке в Apple. Они поддерживают Java на OS X, и это должно соответствовать их опубликованным стандартам.

0 голосов
/ 29 июля 2011

Java позволяет вам работать в полноэкранном режиме, который не имеет ничего общего с Lion. (через chubbard )

Если вы хотите писать собственные приложения Какао с Java, вам нужно использовать JavaBridge .Тем не менее, JavaBridge устарела.

Моя рекомендация: если вы хотите написать собственные приложения OSX Cocoa, делайте это в Objective C или Macruby .MacRuby в настоящее время получает финансирование от Apple (Сансонетти - штатный сотрудник Apple), и у него может быть будущее с Cocoa.Ява не.

...