javafx учебник
Начало работы с javafx
Поиск…
замечания
JavaFX - это программная платформа для создания и доставки настольных приложений, а также богатых интернет-приложений (RIA), которые могут работать на самых разных устройствах. JavaFX предназначен для замены Swing в качестве стандартной библиотеки GUI для Java SE.
ИТ позволяет разработчикам разрабатывать, создавать, тестировать, отлаживать и развертывать богатые клиентские приложения.
Внешний вид приложений JavaFX можно настроить с помощью каскадных таблиц стилей (CSS) для стилизации (см. JavaFX: CSS ) и (F) XML-файлы можно использовать для создания объектов, упрощающих создание или разработку приложения (см. FXML и контроллеры ) , Scene Builder - это визуальный редактор, позволяющий создавать файлы fxml для пользовательского интерфейса без написания кода.
Версии
Версия | Дата выхода |
---|---|
JavaFX 2 | 2011-10-10 |
JavaFX 8 | 2014-03-18 |
Установка или настройка
API JavaFX доступны как полностью интегрированная функция Java SE Runtime Environment (JRE) и Java Development Kit (JDK). Поскольку JDK доступен для всех основных настольных платформ (Windows, Mac OS X и Linux), приложения JavaFX, скомпилированные для JDK 7 и более поздних версий, также работают на всех основных настольных платформах. Поддержка платформ ARM также была доступна с помощью JavaFX 8. JDK для ARM включает базовые, графические и управляющие компоненты JavaFX.
Чтобы установить JavaFX, установите выбранную вами версию среды Java Runtime и набора Java Development .
Возможности JavaFX включают:
- Java API.
- FXML и Scene Builder.
- WebView.
- Совместимость Swing.
- Встроенные элементы пользовательского интерфейса и CSS.
- Тема Модены.
- Особенности 3D-графики.
- API холста.
- Печать API.
- Поддержка Rich Text.
- Поддержка Multitouch.
- Поддержка Hi-DPI.
- Графический конвейер с аппаратным ускорением.
- Высокопроизводительный медиа-движок.
- Автономная модель развертывания приложений.
Программа Hello World
Следующий код создает простой пользовательский интерфейс, содержащий одну Button
которая печатает String
на консоли при нажатии.
import javafx.application.Application;
import javafx.scene.Scene;
import javafx.scene.control.Alert;
import javafx.scene.control.Alert.AlertType;
import javafx.scene.control.Button;
import javafx.scene.layout.StackPane;
import javafx.stage.Stage;
public class HelloWorld extends Application {
@Override
public void start(Stage primaryStage) {
// create a button with specified text
Button button = new Button("Say 'Hello World'");
// set a handler that is executed when the user activates the button
// e.g. by clicking it or pressing enter while it's focused
button.setOnAction(e -> {
//Open information dialog that says hello
Alert alert = new Alert(AlertType.INFORMATION, "Hello World!?");
alert.showAndWait();
});
// the root of the scene shown in the main window
StackPane root = new StackPane();
// add button as child of the root
root.getChildren().add(button);
// create a scene specifying the root and the size
Scene scene = new Scene(root, 500, 300);
// add scene to the stage
primaryStage.setScene(scene);
// make the stage visible
primaryStage.show();
}
public static void main(String[] args) {
// launch the HelloWorld application.
// Since this method is a member of the HelloWorld class the first
// parameter is not required
Application.launch(HelloWorld.class, args);
}
}
Класс Application
является точкой входа для каждого приложения JavaFX. Можно запускать только одно Application
, и это делается с использованием
Application.launch(HelloWorld.class, args);
Это создает экземпляр класса Application
переданного как параметр, и запускает платформу JavaFX.
Для программиста важно следующее:
- Первый
launch
создает новый экземпляр классаApplication
(HelloWorld
в этом случае). Поэтому для классаApplication
нужен конструктор no-arg. -
init()
вызывается в созданном экземпляреApplication
. В этом случае реализация по умолчанию изApplication
ничего не делает. -
start
вызывается для экземпляраAppication
и первичныйStage
(= окно) передается методу. Этот метод автоматически вызывается в потоке приложения JavaFX (поток платформы). - Приложение запускается до тех пор, пока платформа не решит, что пришло время закрыть. Это делается, когда последнее окно закрывается в этом случае.
- Метод
stop
вызывается в экземпляреApplication
. В этом случае реализация изApplication
ничего не делает. Этот метод автоматически вызывается в потоке приложения JavaFX (поток платформы).
В методе start
построен граф сцены. В этом случае он содержит 2 Button
Node
: A и StackPane
.
Button
представляет собой кнопку в пользовательском интерфейсе, а StackPane
- это контейнер для Button
который определяет его размещение.
Scene
создана для отображения этих Node
. Наконец, Scene
добавляется в Stage
которая является окном, отображающим весь пользовательский интерфейс.