美文网首页
2022-08-11_springboot项目中使用javaFX

2022-08-11_springboot项目中使用javaFX

作者: 微笑碧落 | 来源:发表于2022-08-10 20:54 被阅读0次

前言

  • 虽说java在桌面应用开发较少,但是偶尔也是有这方面的需要的。况且javaFX生态也不是很差。
  • 目前javaFX应该是java进行UI开发的主流了。所以在springboot项目中使用javaFX就很有必要了。
  • 以下方法在java8下测试成功。java11因为砍掉了javaFX的支持,需要额外安装javaFX包。所以没有进行测试
  • 参考文章还有一种方法,比较简单,没有用到xml文件。经测试也是可用的。因为感觉没多大用,所以没有记录。

1.IDEA中新建springboot项目

  • 如图1,新建一个spring initializr项目。其中,主要是java的版本,需要和电脑中安装的jdk版本一致。java1.8即java8。
  • 图2,看自己需要勾选依赖库。我就勾选了Lombok,一款可以帮我们书写getter和setter的工具。然后点击finish即可。
  • 新建项目后,需要稍等IDEA下载所有需要的库。。需要点时间。


    图1
    图2

2.引用依赖

<dependency>
    <groupId>de.roskenet</groupId>
    <artifactId>springboot-javafx-support</artifactId>
    <version>2.1.6</version>
</dependency>
<dependency>
    <groupId>de.roskenet</groupId>
    <artifactId>springboot-javafx-test</artifactId>
    <version>1.3.0</version>
    <scope>test</scope>
</dependency>

3.启动类的写法

  • 用如下代替springboot项目新建后的启动类即可。注意启动类继承了AbstractJavaFxApplicationSupport。
@SpringBootApplication
public class DiskCleanerApplication extends AbstractJavaFxApplicationSupport {

    public static void main(String[] args) {
        launch(DiskCleanerApplication.class, MainView.class, args);
    }
}

4.创建view

  • 这里需要创建2个文件。
  • 如下view类,放置于java/packageName/view下
  • 注意@FXMLView(value = "/fxml/main.fxml")注解
@FXMLView(value = "/fxml/main.fxml")
public class MainView extends AbstractFxmlView {
}
  • 如下为fxml文件,必须放置于resources下,否则无法找到这个文件。
  • 注意 fx:controller和fx:id的作用。
  • fx:controller表示指示controller。fx:id是controller的控件id名称。
<?xml version="1.0" encoding="UTF-8"?>

<?import java.lang.*?>
<?import java.util.*?>
<?import javafx.scene.*?>
<?import javafx.scene.control.*?>
<?import javafx.scene.layout.*?>

<AnchorPane xmlns="http://javafx.com/javafx"
            xmlns:fx="http://javafx.com/fxml"
            fx:controller="com.glg.diskcleaner.controller.MainController"
            prefHeight="400.0" prefWidth="600.0">
    <children>
        <Button fx:id="button" layoutX="260" layoutY="180" text="But"></Button>
    </children>
</AnchorPane>

5.controller类

  • 注意@FXMLController注解。
@FXMLController
public class MainController implements Initializable {
    private Stage primaryStage;
    @FXML // 可忽略
    public Button button;// 注意必须为public修饰符
    @Override
    public void initialize(URL location, ResourceBundle resources) {
        primaryStage = DiskCleanerApplication.getStage();
        button.setOnAction(event -> {
            Alert alert = new Alert(Alert.AlertType.INFORMATION, "hello world");
            alert.initOwner(primaryStage);
            alert.showAndWait();
        });
    }
}

6.至此,完工。

  • 运行后会有一个喝咖啡的启动画面。当然可以修改。效果还是不错的。


    启动画面

引用

1.JavaFX之springboot搭建
2.使用springboot创建javafx的几种方式

相关文章

网友评论

      本文标题:2022-08-11_springboot项目中使用javaFX

      本文链接:https://www.haomeiwen.com/subject/veutgrtx.html