Создаем JavaFX 2 приложение используя Maven – Devcolibri – Android для начинающих

Создаем JavaFX 2 приложение используя Maven

Вы уже скорее всего создавали 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:

3264_5

ПОХОЖИЕ ПУБЛИКАЦИИ

    None Found

67571
17/10/2013

13 комментариев к статье "Создаем JavaFX 2 приложение используя Maven"

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

Сайт использует cookie-файлы для того, чтобы вам было удобнее им пользоваться. Для продолжения работы с сайтом, вам необходимо принять использование cookie-файлов.

Я ознакомлен(а)