Вы уже скорее всего создавали JavaFX приложения выбирая в IntellijIDEA создание JavaFX проекта, но он создается не на основе инструмента Maven, в этом уроке мы с вами разберемся как это сделать, а точней как создать JavaFX приложение используя Maven.
Создать JavaFX проект не проблема, но если идет речь о использовании Maven, то простое File->New Project->JavaFX уже не подойдет. Если вы еще не создавали JavaFX проектов, то к примеру в этом уроке вы можете освоить создание JavaFX приложения ‘Конструктор форм JavaFX Scene Builder в Intellij IDEA‘.
Шаг 1
Создаем Maven проект, так как у нас цель создать JavaFX приложение используя Maven.
После этого шага у вас создастся пустой Maven проект.
Шаг 2
Для того чтобы сделать с этого проекта JavaFX2 проект нам потребуется следующий maven плагин:
<plugin> <groupId>com.zenjava</groupId> <artifactId>javafx-maven-plugin</artifactId> <version>2.0</version> <configuration> <mainClass>com.devcolibri.mavenjavafxapp.MainApp</mainClass> </configuration> </plugin>
В 6-й строке мы указываем класс который будет запускать наше приложение.
Вот структура проекта с файлами которые мы ниже создадим:
А вот полностью содержимое файла pom.xml, который является конфигурационным файлом Maven:
<?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion> <groupId>ExampleMavenJavaFX</groupId> <artifactId>ExampleMavenJavaFX</artifactId> <version>1.0-SNAPSHOT</version> <packaging>jar</packaging> <build> <plugins> <plugin> <groupId>com.zenjava</groupId> <artifactId>javafx-maven-plugin</artifactId> <version>2.0</version> <configuration> <mainClass>com.devcolibri.mavenjavafxapp.MainApp</mainClass> </configuration> </plugin> </plugins> </build> </project>
Шаг 3
Теперь создадим класс, который мы указали в maven плагине и который отвечает за запуск приложения src\main\java\com\devcolibri\mavenjavafxapp\MainApp.java:
package com.devcolibri.mavenjavafxapp; import javafx.application.Application; import javafx.fxml.FXMLLoader; import javafx.scene.Parent; import javafx.scene.Scene; import javafx.stage.Stage; public class MainApp extends Application { public static void main(String[] args) throws Exception { launch(args); } @Override public void start(Stage stage) throws Exception { String fxmlFile = "/fxml/hello.fxml"; FXMLLoader loader = new FXMLLoader(); Parent root = (Parent) loader.load(getClass().getResourceAsStream(fxmlFile)); stage.setTitle("JavaFX and Maven"); stage.setScene(new Scene(root)); stage.show(); } }
Теперь этот класс будет использоваться maven плагином для запуска приложения.
Шаг 4
Создаем src\main\resources\fxml\hello.fxml файл, который является отображением Scene нашего окна.
И после кликаем по нему правой кнопкой мыши и выбираем Open in SceneBuilder
После этого откроется окно SceneBuilder и в нем вы можете скомпоновать вид вашего приложения, у меня вышло так:
А в виде разметки он выглядит так:
<?xml version="1.0" encoding="UTF-8"?> <?import java.lang.*?> <?import javafx.scene.control.*?> <?import javafx.scene.layout.*?> <?import javafx.scene.layout.AnchorPane?> <AnchorPane id="AnchorPane" maxHeight="-Infinity" maxWidth="-Infinity" minHeight="-Infinity" minWidth="-Infinity" prefHeight="158.0" prefWidth="247.0" xmlns:fx="http://javafx.com/fxml/1" xmlns="http://javafx.com/javafx/2.2" fx:controller="com.devcolibri.mavenjavafxapp.controller.MainController"> <children> <Label layoutX="24.0" layoutY="14.0" text="Login:" /> <Label layoutX="24.0" layoutY="63.0" text="Password:" /> <TextField layoutX="24.0" layoutY="30.0" prefWidth="200.0" /> <PasswordField layoutX="24.0" layoutY="86.0" prefWidth="200.0" /> <Button layoutX="168.0" layoutY="124.0" mnemonicParsing="false" text="Log In" /> </children> </AnchorPane>
Как вы видите в наш FXML использует контроллер, поэтому давайте его создадим, но пока оставим его пустым.
package com.devcolibri.mavenjavafxapp.controller; public class MainController { }
В будущем мы сможем писать какую-то логику в этом контролере.
Шаг 5
Теперь давайте соберем наше приложение с помощью Maven Install:
ПОХОЖИЕ ПУБЛИКАЦИИ
- None Found
13 комментариев к статье "Создаем JavaFX 2 приложение используя Maven"