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

maven依赖

  1. <dependency>
  2. <groupId>org.springframework.boot</groupId>
  3. <artifactId>spring-boot-starter-actuator</artifactId>
  4. <version>${spring.boot.version}</version>
  5. </dependency>
  6. <dependency>
  7. <groupId>org.springframework.boot</groupId>
  8. <artifactId>spring-boot-starter</artifactId>
  9. <version>${spring.boot.version}</version>
  10. </dependency>
  11. <dependency>
  12. <groupId>de.roskenet</groupId>
  13. <artifactId>springboot-javafx-support</artifactId>
  14. <version>${springboot-javafx-support.version}</version>
  15. </dependency>

创建StartMain类,并继承Application

  1. import javafx.application.Application;
  2. import javafx.geometry.Insets;
  3. import javafx.scene.Group;
  4. import javafx.scene.Scene;
  5. import javafx.scene.control.Button;
  6. import javafx.scene.control.Label;
  7. import javafx.scene.layout.GridPane;
  8. import javafx.scene.layout.HBox;
  9. import javafx.stage.Stage;
  10. import org.springframework.boot.CommandLineRunner;
  11. import org.springframework.boot.SpringApplication;
  12.  
  13. import java.util.Objects;
  14. import java.util.function.Consumer;
  15.  
  16. /**
  17. * maven构建JavaFX项目启动类
  18. */
  19. public class StartMain extends Application implements CommandLineRunner, Consumer<Stage> {
  20.  
  21. /**
  22. * 窗口启动接口,原理:
  23. * 1. run(String... args)中给springStartMain赋值
  24. * 2. start(Stage primaryStage)中调用了springStartMain来操作primaryStage
  25. * 3. 而springStartMain实际上是spring管理的StartMain一个对象,因此accept方法中可以操作spring管理的任何对象
  26. */
  27. private static Consumer<Stage> springStartMain;
  28. private final Button btnStart = new Button("开 始");
  29.  
  30. @Override
  31. public void accept(Stage stage) {
  32.  
  33. final GridPane gridPane = new GridPane();
  34. gridPane.setPrefWidth();
  35. gridPane.setPadding(new Insets(, , , ));
  36. gridPane.setVgap();
  37. gridPane.setHgap();
  38. btnStart.setStyle("-fx-padding: 10;-fx-end-margin:20;");
  39. HBox hBox1 = new HBox();
  40. hBox1.getChildren().addAll(btnStart);
  41. hBox1.setSpacing();
  42. gridPane.addRow(, new Label(), hBox1);
  43. //页面
  44. Group root = new Group();
  45. Scene scene = new Scene(root, , );
  46. scene.setRoot(gridPane);
  47.  
  48. //设置标题
  49. stage.setTitle("Hello World");
  50. //stage的标题将会是hello
  51. stage.setScene(scene);
  52. stage.show();
  53. }
  54.  
  55. @Override
  56. public void start(Stage primaryStage) throws Exception {
  57. springStartMain.accept(primaryStage);
  58. }
  59.  
  60. @Override
  61. public void run(String... args) throws Exception {
  62. springStartMain = Objects.requireNonNull(this);
  63. }
  64.  
  65. public static void main(String[] args) {
  66. //启动spring-boot
  67. SpringApplication.run(StartMain.class, args);
  68. //启动窗口
  69. Application.launch(args);
  70. }
  71.  
  72. }

项目结构如下:

(三)创建基于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. php中的<?= ?>和<?php ?>有什么区别么?

    <? ?>是短标签<?php ?>是长标签在php的配置文件(php.ini)中有一个short_open_tag的值,开启以后可以使用PHP的短标签:<? ?>同 ...

  2. bash脚本获取绝对路径的最后一个目录名称

    比如绝对路径是/root/autoHls/streamID 因为脚本里面想直接用这个streamID来推流 下面是方法 #!/bin/bash dir="/root/autoHls" ...

  3. ffmpeg编码h264设置规格

    ffmpeg -i demo.ts -profile:v baseline -vcodec h264 -acodec aac -f flv demo.flv

  4. 使用预设半透明鼠标Cursor

    using System;using System.Collections.Generic;using System.ComponentModel;using System.Data;using Sy ...

  5. grivaty,margin和padding的区别

    layout_margn是指组件距离父窗体的距离, padding是指组件中的内容距离组件边缘的距离 Layout_grivaty与grivaty的区别 layout_grivaty是指组件相对父窗体 ...

  6. 深度学习之GAN对抗神经网络

    1.结构图 2.知识点 生成器(G):将噪音数据生成一个想要的数据 判别器(D):将生成器的结果进行判别, 3.代码及案例 # coding: utf-8 # ## 对抗生成网络案例 ## # # # ...

  7. springmvc集成swagger

    1.保证项目为maven项目 2.导入jar包依赖 <dependency> <groupId>io.springfox</groupId> <artifac ...

  8. Windows Server 2019远程桌面服务配置和授权激活

    参考Windows Server 2016远程桌面服务配置和授权激活方法可适用于Windows Server 2019     Server 2016默认远程桌面连接数是2个用户,如果多余两个用户进行 ...

  9. 【图像处理与医学图像处理】YUV与RGB格式转换速度几种方法对比

    [视频处理]YUV与RGB格式转换 YUV格式具有亮度信息和色彩信息分离的特点,但大多数图像处理操作都是基于RGB格式. 因此当要对图像进行后期处理显示时,需要把YUV格式转换成RGB格式. RGB与 ...

  10. win10下查看进程,杀死进程

    参考链接:https://blog.csdn.net/qq_36819098/article/details/80262482