maven+IDEA+JavaFX+JFoenix
2018-11-14 本文已影响174人
陶然然_niit
1.maven环境准备
解压apache-maven-3.5.4.zip到D盘根目录,并建一个本地仓库目录my_maven_jar,如图
准备maven和本地仓库目录
2.在IDEA中配置maven环境
-
file->other Settings->Settings for New Projects
image.png -
弹出窗口中,进行maven目录和配置文件、本地仓库的配置,仔细看图
maven目录和仓库配置
这些步骤完成后,就可以基于Maven来创建项目了,接下来,继续
3.新建Java项目
新建一个Java项目4.添加框架支持
-
在项目名上右键单击,选择“Add Framework Support"
添加框架支持 -
弹出窗口中,往下拉,选择"Maven",然后确定
选择Maven类型框架 -
点击右侧“Maven projects”,展开Maven项目视图,右下角红框处点击”Enable Auto Import",允许自动导入,左上角多点点刷新按钮,然后耐心等待全部进程走完
Maven projects -
全部正常结束后,项目视图如图所示,项目结构会变成main下面包含Java源码和resources资源,以及test下面包含测试的结构。
项目结构 -
然后去看D盘的my_maven_jar文件夹,会发现多了东西
本地仓库
5.编码
- 点开pom.xml文件,修改groupId为自己单位的组织域名反写,如com.soft1841,artifactId是项目名称,当前就是first-maven项目,不用改,version是当前项目的版本,默认为1.0快照。设置项目打包类型为jar。然后添加依赖,配置build节点。
<?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>com.soft1841</groupId>
<artifactId>first-maven</artifactId>
<version>1.0-SNAPSHOT</version>
<packaging>jar</packaging>
<dependencies>
<dependency>
<groupId>com.jfoenix</groupId>
<artifactId>jfoenix</artifactId>
<version>8.0.4</version>
</dependency>
<dependency>
<groupId>io.datafx</groupId>
<artifactId>datafx</artifactId>
<version>8.0.1</version>
</dependency>
<dependency>
<groupId>io.datafx</groupId>
<artifactId>flow</artifactId>
<version>8.0.1</version>
</dependency>
<dependency>
<groupId>de.jensd</groupId>
<artifactId>fontawesomefx</artifactId>
<version>8.9</version>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<configuration>
<source>8</source>
<target>8</target>
</configuration>
</plugin>
</plugins>
</build>
</project>
-
刷新一下Maven结构树,看到下图结果
添加的第三方UI库依赖 -
resources下,建css和fxml目录,用来放置样式表和布局文件,java目录建包,用来放置主程序和控制器程序,如图
程序目录 - 布局文件main.xml
<?xml version="1.0" encoding="UTF-8"?>
<?import javafx.scene.layout.*?>
<?import com.jfoenix.controls.JFXButton?>
<?import com.jfoenix.controls.JFXCheckBox?>
<?import javafx.geometry.Insets?>
<?import com.jfoenix.controls.JFXDatePicker?>
<?import com.jfoenix.controls.JFXTimePicker?>
<StackPane xmlns="http://javafx.com/javafx"
xmlns:fx="http://javafx.com/fxml"
fx:controller="com.maven.test.MyController">
<HBox spacing="10">
<JFXButton prefWidth="100" prefHeight="40" buttonType="RAISED" text="BUTTON"
style="-fx-font-size:14px;-fx-background-color:WHITE;"/>
<JFXButton prefWidth="100" prefHeight="40" buttonType="RAISED" text="COLORED" fx:id="dialogButton"
style="-fx-text-fill:WHITE;-fx-background-color:#5264AE;-fx-font-size:14px;"/>
<JFXButton prefWidth="100" prefHeight="40" buttonType="RAISED" text="DISABLED"
style="-fx-background-color:WHITE;-fx-font-size:14px;" disable="true"/>
<JFXCheckBox text="Notifications" styleClass="custom-jfx-check-box"></JFXCheckBox>
<JFXCheckBox text="Auto Updates" styleClass="custom-jfx-check-box-all-colored"></JFXCheckBox>
<padding>
<Insets top="10" left="20"/>
</padding>
</HBox>
<HBox spacing="40" style="-fx-padding: 100 0 0 50;">
<children>
<JFXDatePicker fx:id="dateOverlay" overLay="true"
styleClass="custom-color-picker"></JFXDatePicker>
<JFXTimePicker fx:id="timeOverlay" overLay="true"
styleClass="custom-color-picker"></JFXTimePicker>
</children>
</HBox>
</StackPane>
- 主程序MyApp.java
package com.maven.test;
import javafx.application.Application;
import javafx.fxml.FXMLLoader;
import javafx.scene.Parent;
import javafx.scene.Scene;
import javafx.stage.Stage;
public class MyApp extends Application {
@Override
public void start(Stage primaryStage) throws Exception {
Parent root = FXMLLoader.load(getClass().getResource("/fxml/main.fxml"));
primaryStage.setTitle("maven项目");
Scene scene = new Scene(root, 900, 500);
scene.getStylesheets().add(MyApp.class.getResource("/css/jfoenix-components.css").toExternalForm());
primaryStage.setScene(scene);
primaryStage.show();
}
public static void main(String[] args) {
launch(args);
}
}
-
运行效果图
主界面 -
日期组件
日期组件 -
时间组件