Подтвердить что ты не робот

Полноэкранный режим для Java-приложений на OSX Lion

Как я могу (изначально) реализовать полноэкранную функцию OSX Lion в приложении Java?

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

4b9b3361

Ответ 1

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

Mac OS X 10.7 Lion Fullscreen Support

Приложения 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);
    }
}

Ответ 2

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

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

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

Ответ 3

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

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

FullScreenUtilities.setWindowCanFullScreen(window,true);

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

Application.getApplication().requestToggleFullScreen(window);

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

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

Ответ 4

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

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

Ответ 5

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

Ответ 6

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

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

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