javafx
Сценарий
Поиск…
Вступление
JavaFX Scene Builder - это инструмент визуального макета, который позволяет пользователям быстро создавать пользовательские интерфейсы приложений JavaFX без кодирования. Он используется для генерации файлов FXML.
замечания
JavaFX Scene Builder - это инструмент визуального макета, который позволяет пользователям быстро создавать пользовательские интерфейсы приложений JavaFX без кодирования. Пользователи могут перетаскивать компоненты пользовательского интерфейса в рабочую область, изменять их свойства, применять таблицы стилей, а код FXML для макета, который они создают, автоматически генерируется в фоновом режиме. Результатом является файл FXML, который затем может быть объединен с проектом Java, привязывая интерфейс к логике приложения.
С точки зрения контроллера модели (MVC):
- Файл FXML, содержащий описание пользовательского интерфейса, представляет собой представление.
- Контроллер является классом Java, опционально реализующим класс Initializable, который объявляется контроллером для файла FXML.
- Модель состоит из объектов домена, определенных на стороне Java, которые могут быть подключены к представлению через контроллер.
Установка компоновщика сцен
Загрузите самую последнюю версию Scene Builder с сайта Gluon, выбрав установщик для своей платформы или исполняемый банку.
С загруженным установщиком дважды щелкните, чтобы установить Scene Builder в вашей системе. Включена обновленная JRE.
Дважды щелкните значок «Сценарий», чтобы запустить его как автономное приложение.
Интеграция с IDE
Хотя Scene Builder является автономным приложением, он создает файлы FXML, которые интегрированы с проектом Java SE. При создании этого проекта в среде IDE удобно включать ссылку на путь создания сценария, поэтому файлы FXML можно редактировать.
- NetBeans: в Windows перейдите в NetBeans-> Tools-> Options-> Java-> JavaFX. В Mac OS X перейдите в NetBeans-> Preferences-> Java-> JavaFX. Укажите путь для дома сценаристов.
- IntelliJ: В Windows перейдите в IntelliJ-> Settings-> Languages & Frameworks-> JavaFX. В Mac OS X перейдите в IntelliJ-> Preferences-> Languages & Frameworks-> JavaFX. Укажите путь для дома сценаристов.
- Eclipse: В Windows перейдите в Eclipse-> Window-> Preferences-> JavaFX. В Mac OS X перейдите в Eclipse-> Preferences-> JavaFX. Укажите путь для дома сценаристов.
Немного истории
Проект Scene Builder был создан с использованием JavaFX от Oracle и является открытым исходным кодом в проекте OpenJFX.
Oracle предоставил двоичные файлы, вплоть до Scene Builder v 2.0, включая только функции JavaFX до выпуска Java SE 8u40, поэтому новые функции, такие как элементы управления Spinner
, не включены.
Gluon взял на себя дистрибуцию бинарных выпусков, и обновленную версию Scene Builder 8+ можно загрузить для каждой платформы отсюда .
Он включает в себя последние изменения в JavaFX, а также последние улучшения и исправления ошибок.
Проект с открытым исходным кодом можно найти здесь, где могут быть созданы проблемы, запросы функций и запросы на тягу.
Оставшиеся двоичные файлы Oracle по-прежнему можно загрузить здесь .
Учебники
Учебники по сценариям можно найти здесь:
- Учебник Oracle Scene Builder 2.0
Учебники FXML можно найти здесь.
- Учебник Oracle FXML
Пользовательские элементы управления
Gluon полностью задокументировал новую функцию, которая позволяет импортировать сторонние банки с настраиваемыми элементами управления, используя Менеджер библиотек (доступный с момента создания Scene Builder 8.2.0).
Вопросы
Связанный тег: SceneBuilder
Основной проект JavaFX с использованием FXML
Это базовый проект, который использует FXML, созданный с помощью приложения NetBeans (New Project -> JavaFX -> JavaFX FXML Application). Он содержит всего три файла:
Основной класс приложения
package org.stackoverflow;
import javafx.application.Application;
import javafx.fxml.FXMLLoader;
import javafx.scene.Parent;
import javafx.scene.Scene;
import javafx.stage.Stage;
public class BasicApplication extends Application {
@Override
public void start(Stage stage) throws Exception {
Parent root = FXMLLoader.load(getClass().getResource("BasicFXML.fxml"));
Scene scene = new Scene(root);
stage.setScene(scene);
stage.show();
}
public static void main(String[] args) {
launch(args);
}
}
Файл FXML
<?xml version="1.0" encoding="UTF-8"?>
<?import java.lang.*?>
<?import java.util.*?>
<?import javafx.scene.*?>
<?import javafx.scene.control.*?>
<?import javafx.scene.layout.*?>
<AnchorPane id="AnchorPane" prefHeight="200" prefWidth="320" xmlns:fx="http://javafx.com/fxml/1" fx:controller="org.stackoverflow.BasicFXMLController">
<children>
<Button layoutX="126" layoutY="90" text="Click Me!" onAction="#handleButtonAction" fx:id="button" />
<Label layoutX="126" layoutY="120" minHeight="16" minWidth="69" fx:id="label" />
</children>
</AnchorPane>
контроллер
package org.stackoverflow;
import javafx.event.ActionEvent;
import javafx.fxml.FXML;
import javafx.scene.control.Label;
public class BasicFXMLController {
@FXML
private Label label;
public void initialize() {
// TODO
}
@FXML
private void handleButtonAction(ActionEvent event) {
label.setText("Hello World!");
}
}
Бежать
Создание и запуск проекта должно отображать небольшое окно с кнопкой:
Как это устроено
Вкратце, в основном классе Application, FXMLLoader будет загружать basicFXML.fxml
из jar / classpath, как определено FXMLLoader.load(getClass().getResource("BasicFXML.fxml"))
.
При загрузке basicFXML.fxml
загрузчик найдет имя класса контроллера, как определено fx:controller="org.stackoverflow.BasicFXMLController"
в FXML.
Затем загрузчик создаст экземпляр этого класса, в котором он попытается внедрить все объекты с fx:id
в FXML и помечен аннотацией @FXML
в классе контроллера.
В этом примере FXMLLoader создаст метку на основе <Label ... fx:id="label"/>
, и она @FXML private Label label;
экземпляр метки в @FXML private Label label;
,
Наконец, когда весь FXML загружен, FXMLLoader вызовет метод initialize
контроллера, и будет выполнен код, который регистрирует обработчик действий с помощью кнопки.
редактирование
Хотя файл FXML можно редактировать в среде IDE, это не рекомендуется, так как среда IDE обеспечивает только базовую проверку синтаксиса и автозаполнение, но не визуальное руководство.
Лучшим подходом является открытие файла FXML с помощью Scene Builder, где все изменения будут сохранены в файле.
Scene Builder можно запустить, чтобы открыть файл:
Или файл можно открыть с помощью Scene Builder непосредственно из среды IDE:
- Из NetBeans на вкладке проекта дважды щелкните файл или щелкните правой кнопкой мыши и выберите «
Open
. - Из IntelliJ на вкладке проекта щелкните правой кнопкой мыши файл и выберите «
Open In Scene Builder
. - Из Eclipse на вкладке проекта щелкните правой кнопкой мыши файл и выберите «
Open with Scene Builder
.
Если Scene Builder установлен правильно и его путь добавлен в среду IDE (см. Примечания ниже), он откроет файл:
Изменения могут быть сделаны путем перетаскивания новых контейнеров или новых элементов управления из левых панелей, а свойства и значения макета можно изменить на правых панелях.
Обратите внимание, что одним из тегов id, который позволяет вводить FXML в код Java, является fx:id
. Его можно установить в панели « Code
:
После внесения изменений сохраните файл (Scene Builder -> File -> Save). Если при редактировании файла будут внесены изменения, отредактировав файл из среды IDE, они будут обновлены в Scene Builder.