Докуметация Cтарт Статьи Форум Лента Вход
Не официальное русскоязычное сообщество
Главная
    Документация jMonkeyEngine
        jMonkeyEngine Уроки и Документация
            Вклады
                Лемур GUI
                    Начнем

Начнем

Опубликованно: 28.04.2017, 23:33
Последняя редакция, Andry: 20.09.2017 20:59

Контрольный список

  • Загрузим Lemur.jar
  • Загрузим Lemur-proto.jar
  • Загрузим Lemur Dependencies(Зависимости)
  • Включим в проект jar-ы
  • Инициализируем слой GUI
  • Инициализируем стиль по умолчанию
  • Создадим GUI

Загрузки

Загрузите последнюю версию jar ядра Lemur отсюда: Latest

Также рекомендуется взять последний Lemur-proto.jar, так как он содержит много полезных компонентов, которые «вынашиваются» и, в конечном счете, будут включены в основной модуль. Проверьте страницу выпуска Lemur для того что бы увидеть какая последняя релизная версия. Это последняя версия на момент написания статьи.

Возможно, стоит взять jaradoc файлы для каждого jar или просто добавить в закладки эти ссылки:

Обязательные зависимости

Лемур требует минимального количества внешних зависимостей, многие из которых будут полезны в ваших проектах в любом случае.

  • Версия Guava 12 или новее
  • Slf4j версии 1.7.5 или более поздней, плюс адаптер для вашей предпочитаемой структуры ведения журнала. (Как минимум, вам понадобится jar API, что-то вроде: slf4j-api-1.7.5.jar)
  • JME-версия 3.1-alpha или более поздняя. (Рекомендуется бета-версия 1 или выше)
  • (Необязательно, но настоятельно рекомендуется) Groovy версии 2.1.9 или новее. Это нужно только в том случае, если вы хотите использовать поддержку языка стилей, и вам нужен только groovy-all.jar. (Например: groovy-all-2.1.9.jar)

Включить Jar-ы

Это зависит от IDE, но вы должны включить указанные выше jar-ы в качестве зависимостей для вашего проекта. (Лемур также доступен в JCenter как стандартная зависимость gradle/maven.) В JME SDK щелкните правой кнопкой мыши по Библиотеки в дереве проекта и выберите Добавить файл JAR/папку….

Add jar

Альтернативные: зависимости Gradle

Если вы используете инструмент построения, например gradle или maven (или поддержку в вашей IDE по выбору), то Lemur доступен через JCenter. Это автоматически включит любые зависимости, которые вам нужны.

Пример включения Lemur и Lemur-proto в gradle построение:

dependencies {
    compile "com.simsilica:lemur:1.10.1"
    compile "com.simsilica:lemur-proto:1.9.1"
}

Полный пример проекта, использующего Lemur в gradle построении, см : SimEthereal Basic Example

Инициализация слоя GUI

Лемур требует минимальной инициализации для установки своих внутренних параметров по умолчанию, регистрации некоторых базовых слушателей в системе и установки некоторых состояний приложений(app states) по умолчанию. Для этого требуется только одна строка кода: GuiGlobals.initialize(app)

Это должно быть сделано в начале инициализации приложения, но после запуска jME, поэтому обычно это делается в методе simpleInit() следующим образом:

@Override
public void simpleInitApp() {

    // Инициализируйте доступ к глобальным переменным, чтобы
    // компоненты могли найти то, что им нужно.
    GuiGlobals.initialize(this);
....

Инициализация стиля по умолчанию

Элементы GUI Lemur по умолчанию не включают стиль. Кнопки даже не имеют границ и.т.п. Lemur включает в себя некоторые стили по умолчанию, которые вы можете легко включить (или расширить тот же механизм, чтобы добавить свои собственные наборы стилей).

Особенность стилизации в том что по умолчанию она требует Groovy в качестве зависимости проекта, так как язык стилизации основан на groovy. Если вы используете код стиля ниже, убедитесь, что у вас есть какая-нибудь версия groovy-all.jar в зависимостях проекта.

Ниже будет загружен стиль «glass», включенный в Лемур по умолчанию. (Другие стили в настоящее время ещё создаются.)

// Загрузить стиль 'glass'
BaseStyles.loadGlassStyle();

Если вы хотите, чтобы этот стиль был по умолчанию для всех новых элементов GUI, просто добавьте:

// Задать 'glass' как стиль по умолчанию, если не указано другой
GuiGlobals.getInstance().getStyles().setDefaultStyle("glass");

Для получения дополнительной информации о расширении этой загрузки стиля см: Расширение базовых стилей (в стадии разработки)

Создадим GUI

На этом этапе вы уже можете создать GUI. Вот простой пример:

// Создайте простой контейнер для наших элементов
Container myWindow = new Container();
guiNode.attachChild(myWindow);

// Поместите его куда-нибудь, чтобы мы его увидели.
// Примечание. Элементы GUI Lemur прирастают из левого верхнего угла.
myWindow.setLocalTranslation(300, 300, 0);

// Добавим некоторые элементы
myWindow.addChild(new Label("Hello, World."));
Button clickMe = myWindow.addChild(new Button("Click Me"));
clickMe.addClickCommands(new Command<Button>() {
        @Override
        public void execute( Button source ) {
            System.out.println("The world is yours.");
        }
    });

Он должен выглядеть так, когда вы запустите его:

Add jar

Если так, то Поздравляем!

Полный исходный код:

package mygame;

import com.jme3.app.SimpleApplication;
import com.simsilica.lemur.Button;
import com.simsilica.lemur.Command;
import com.simsilica.lemur.Container;
import com.simsilica.lemur.GuiGlobals;
import com.simsilica.lemur.Label;
import com.simsilica.lemur.style.BaseStyles;

public class GuiDemo extends SimpleApplication {

    public static void main( String... args ) {
        GuiDemo main = new GuiDemo();
        main.start();
    }           
    
    @Override
    public void simpleInitApp() {
            
        // Инициализируйте доступ к глобальным переменным, чтобы
        // компоненты могли найти то, что им нужно.
        GuiGlobals.initialize(this);
            
        // Загрузите стиль 'glass'
        BaseStyles.loadGlassStyle();
            
        // Задать 'glass' как стиль по умолчанию, если не указано другой
        GuiGlobals.getInstance().getStyles().setDefaultStyle("glass");
    
        // Создайте простой контейнер для наших элементов
        Container myWindow = new Container();
        guiNode.attachChild(myWindow);
            
        // Поместите его куда-нибудь, чтобы мы его увидели.
        // Примечание. Элементы GUI Lemur прирастают из левого верхнего угла.
        myWindow.setLocalTranslation(300, 300, 0);
    
        // Добавим некоторые элементы
        myWindow.addChild(new Label("Hello, World."));
        Button clickMe = myWindow.addChild(new Button("Click Me"));
        clickMe.addClickCommands(new Command<Button>() {
                @Override
                public void execute( Button source ) {
                    System.out.println("The world is yours.");
                }
            });            
    }    
}

Что дальше?

Хорошим местом для начала будет страница документации.


Переведено для jmonkeyengine.ru, оригинал
Автор перевода: Andry

Добавить комментарий

jMonkeyEngine.ru © 2017. Все права сохранены.