创建基于maven的javaFx+springboot项目有两种方式,第一种为通过非编码的方式来设计UI集成springboot;第二种为分离用户界面(UI)和后端逻辑集成springboot,其中用户界面为fxml文件。

maven依赖

        <dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-actuator</artifactId>
<version>${spring.boot.version}</version>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter</artifactId>
<version>${spring.boot.version}</version>
</dependency>
<dependency>
<groupId>de.roskenet</groupId>
<artifactId>springboot-javafx-support</artifactId>
<version>${springboot-javafx-support.version}</version>
</dependency>

创建StartMain类,并继承Application

import javafx.application.Application;
import javafx.geometry.Insets;
import javafx.scene.Group;
import javafx.scene.Scene;
import javafx.scene.control.Button;
import javafx.scene.control.Label;
import javafx.scene.layout.GridPane;
import javafx.scene.layout.HBox;
import javafx.stage.Stage;
import org.springframework.boot.CommandLineRunner;
import org.springframework.boot.SpringApplication; import java.util.Objects;
import java.util.function.Consumer; /**
* maven构建JavaFX项目启动类
*/
public class StartMain extends Application implements CommandLineRunner, Consumer<Stage> { /**
* 窗口启动接口,原理:
* 1. run(String... args)中给springStartMain赋值
* 2. start(Stage primaryStage)中调用了springStartMain来操作primaryStage
* 3. 而springStartMain实际上是spring管理的StartMain一个对象,因此accept方法中可以操作spring管理的任何对象
*/
private static Consumer<Stage> springStartMain;
private final Button btnStart = new Button("开 始"); @Override
public void accept(Stage stage) { final GridPane gridPane = new GridPane();
gridPane.setPrefWidth();
gridPane.setPadding(new Insets(, , , ));
gridPane.setVgap();
gridPane.setHgap();
btnStart.setStyle("-fx-padding: 10;-fx-end-margin:20;");
HBox hBox1 = new HBox();
hBox1.getChildren().addAll(btnStart);
hBox1.setSpacing();
gridPane.addRow(, new Label(), hBox1);
//页面
Group root = new Group();
Scene scene = new Scene(root, , );
scene.setRoot(gridPane); //设置标题
stage.setTitle("Hello World");
//stage的标题将会是hello
stage.setScene(scene);
stage.show();
} @Override
public void start(Stage primaryStage) throws Exception {
springStartMain.accept(primaryStage);
} @Override
public void run(String... args) throws Exception {
springStartMain = Objects.requireNonNull(this);
} public static void main(String[] args) {
//启动spring-boot
SpringApplication.run(StartMain.class, args);
//启动窗口
Application.launch(args);
} }

项目结构如下:

(三)创建基于maven的javaFX+springboot项目创建的更多相关文章

  1. (四)创建基于maven的javaFX+springboot项目,用户界面与后台逻辑分离方式

    下面来介绍创建maven的javaFX+springboot项目,基于用户界面与后天逻辑分离的方式,用户界面使用fxml文件来常见,类似于jsp,可以引入css文件修饰界面 maven依赖 <d ...

  2. (二)创建基于maven的javaFX项目

    首先使用IDEA创建一个javaFX项目 点击finish,这就创建完成了JavaFX项目,只有将其转换为maven项目即可,如图:

  3. 使用IDEA创建基于Maven SpringMvc项目

    使用IDEA创建基于Maven SpringMvc项目 1.通过程序启动——create project,或者file--New-projec打开New project 2.自定义groupid等信息 ...

  4. SpringBoot项目创建与第一个SSM项目示例

    本节介绍SpringBoot创建第一个示例SSM项目的完整过程,使用工具STS,与IDEA操作基本类似. 示例代码在:https://github.com/laolunsi/spring-boot-e ...

  5. 转:基于Maven管理的JavaWeb项目目录结构参考

    通常在创建JavaWeb项目时多多少少都会遵循一些既定的比较通用的目录结构,下面分享一张基于Maven管理的JavaWeb项目目录结构参考图: 上图仅是参考,不同项目不同团队都有自己的约定和规范. 个 ...

  6. SpringBoot项目创建流程--SpringMVC

    SpringBoot项目创建步骤 1. 创建SpringBoot工程 (1) File → New → Project → Spring Initilizr (2) Name:MySpringBoot ...

  7. IntelliJ IDEA基于maven构建的web项目找不到jar包

    基于maven构建的springMVC项目,下载好jar包import后,运行提示ClassNotFoundException: java.lang.ClassNotFoundException: o ...

  8. Springboot项目创建文件中相对路径问题

    Springboot项目创建文件中相对路径问题 原代码: String location = "./src/main/resources/UsersFiles/" + userId ...

  9. 创建基于maven的项目模版

    我们在实际工作中 ,有些项目的架构是相似的,例如基于 restful的接口项目,如果每次都重新搭建一套架构或者通过拷贝建立一个项目难免有些得不偿失,这里我们可以用maven的archtype建立项目模 ...

随机推荐

  1. ansible-playbook的YAML语法学习

    YAML:可以将你打算对多机器的批量操作放到一个文件中,顺序执行,可以根据机器做到根据机器信息判断执行,其他命令执行结果判断执行. YAML有着严格的层级要求,稍微有个缩进问题就会无法运行,所以学习过 ...

  2. nginx状态码

    200:服务器成功返回网页 403:服务器拒绝请求.404:请求的网页不存在 499:客户端主动断开了连接.500:服务器遇到错误,无法完成请求.502:服务器作为网关或代理,从上游服务器收到无效响应 ...

  3. ubuntu16.04下如何安装mkimage工具?

    答: sudo apt-get install u-boot-tools -y

  4. Android数据存储的方式

    1. 内部存储    * 路径:  /data/data/包名/    * cache用于存储临时文件,系统内存不足时,清除缓存数据    * files用于存储重要的文件,要用户手动在应用程序列表清 ...

  5. coursera 视频总是缓冲或者无法观看的解决办法(Windows 和 Linux 系统 环境)

    现在读了一个机器学习方向的博士,虽然这么长时间也没有学明白什么,但是没事的时候也会看看一些书籍和资料,学这个方向的人基本都会看过吴恩达的coursera课程上的机器学习课程,我也是如此,不过交了钱以后 ...

  6. NoSQL的种类

    https://www.zhihu.com/question/30219620

  7. memcached源码分析-----item过期失效处理以及LRU爬虫

    memcached源码分析-----item过期失效处理以及LRU爬虫,memcached-----item 转载请注明出处:http://blog.csdn.net/luotuo44/article ...

  8. Linux学习—maven安装

    1.下载maven安装包 cd /usr/local/ wget http://mirror.bit.edu.cn/apache/maven/maven-//binaries/apache-maven ...

  9. Java虚拟机new对象

    类加载检查java虚拟机在遇到一条 new 指令时,首先会检查是否能在常量池中定位到这个类的符号引用,并且是否已被加载过.解析和初始化过.如果没有,那必须先执行类加载过程 类加载的相关知识可参考:JV ...

  10. Asp.net Core深入一:数据库访问(Mysql为例)

    一.数据库概述 1.一个DBContext操纵一个数据库 2.DbContext下的一个DbSet<Model类>关联一个表,但是也可以只写一个表,DbContext可以关联其他的表. 3 ...