<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          SpringBoot整合JavaFx

          共 7090字,需瀏覽 15分鐘

           ·

          2021-01-27 17:10

          點(diǎn)擊上方藍(lán)色字體,選擇“標(biāo)星公眾號”

          優(yōu)質(zhì)文章,第一時間送達(dá)

          ? 作者?|? 塵世間迷茫的小書童

          來源 |? urlify.cn/j2mUF3

          76套java從入門到精通實(shí)戰(zhàn)課程分享

          有興趣使用SpringBoot開發(fā)JavaFx應(yīng)用的朋友可以看一下這個隨筆;

          SpringBoot版本:2.1.15.RELEASE

          JavaFx依賴:


          ????????????de.roskenet
          ????????????springboot-javafx-support
          ????????????2.1.6
          ????????

          ????????
          ????????????de.roskenet
          ????????????springboot-javafx-test
          ????????????1.3.0
          ????????????test
          ????????

          ?

          SpringBoot啟動類需要稍加改造:

          import?com.maxinhai.diary.view.IndexFxmlView;
          import?com.maxinhai.diary.view.StartUpPage;
          import?de.felixroske.jfxsupport.AbstractJavaFxApplicationSupport;
          import?org.springframework.boot.SpringApplication;
          import?org.springframework.boot.autoconfigure.SpringBootApplication;

          /**
          ?*?Mood?Diary應(yīng)用啟動入口
          ?*/
          @SpringBootApplication
          public?class?DiaryApplication?extends?AbstractJavaFxApplicationSupport?{

          ????public?static?void?main(String[]?args)?{
          ????????//?原SpringBoot啟動方法
          ????????//SpringApplication.run(DiaryApplication.class,?args);
          ????????launch(DiaryApplication.class,?IndexFxmlView.class,?new?StartUpPage(),?args);
          ????}

          }

          上面是加了啟動動畫的啟動方法

          ?

          fxml文件存放到resources文件加下即可:

          ?

          fxml文件:

          "1.0"?encoding="UTF-8"?>









          "400.0"?prefWidth="600.0"?xmlns="http://javafx.com/javafx/8.0.172-ea"
          ????????????xmlns:fx="http://javafx.com/fxml/1"
          ????????????stylesheets="@/css/index.css"
          ????????????fx:controller="com.maxinhai.diary.controller.IndexController">
          ????
          ????????source="menuBar.fxml"/>
          ????????"label"?layoutX="20.0"?layoutY="20.0"?text="hello">
          ????????????
          ????????????????"61.0"/>
          ????????????

          ????????
          ????????"20.0"?layoutY="100.0">
          ????????????
          ????????????????
          ????????????????????
          ????????????????????????"btn"?layoutX="20.0"?layoutY="250.0"?mnemonicParsing="false"?text="Button"?onAction="#btnClick"?prefHeight="22.0"?prefWidth="100.0">
          ????????????????????????????
          ????????????????????????????????"5.0"?/>
          ????????????????????????????

          ????????????????????????????
          ????????????????????????????????"5.0"?left="5.0"?right="5.0"?top="5.0"?/>
          ????????????????????????????

          ????????????????????????
          ????????????????????????"22.0"?prefWidth="40.0"?/>
          ????????????????????????"btnLogin"?layoutX="80.0"?layoutY="250.0"?mnemonicParsing="false"?text="Login"?onAction="#btnToPage"?prefHeight="22.0"?prefWidth="100.0">
          ????????????????????????????
          ????????????????????????????????"5.0"?/>
          ????????????????????????????

          ????????????????????????????
          ????????????????????????????????"5.0"?left="5.0"?right="5.0"?top="5.0"?/>
          ????????????????????????????

          ????????????????????????
          ????????????????????????"22.0"?prefWidth="40.0"?/>
          ????????????????????????"listView"?layoutX="160.0"?layoutY="250.0"?mnemonicParsing="false"?text="toListView"?onAction="#btnToListViewPage"?prefHeight="22.0"?prefWidth="100.0">
          ????????????????????????????
          ????????????????????????????????"5.0"?/>
          ????????????????????????????

          ????????????????????????????
          ????????????????????????????????"5.0"?left="5.0"?right="5.0"?top="5.0"?/>
          ????????????????????????????

          ????????????????????????
          ????????????????????

          ????????????????

          ????????????????"hBox1"?>
          ????????????????????
          ????????????????????????"tableView"?layoutX="240.0"?layoutY="250.0"?mnemonicParsing="false"?text="toTableView"?onAction="#btnToTableViewPage"?prefHeight="22.0"?prefWidth="100.0">
          ????????????????????????????
          ????????????????????????????????"5.0"?/>
          ????????????????????????????

          ????????????????????????????
          ????????????????????????????????"5.0"?left="5.0"?right="5.0"?top="5.0"?/>
          ????????????????????????????

          ????????????????????????
          ????????????????????????"22.0"?prefWidth="40.0"?/>
          ????????????????????????"btnToMenuBar"?layoutX="320.0"?layoutY="250.0"?mnemonicParsing="false"?text="btnToMenuBar"?onAction="#btnToMenuBar"?prefHeight="22.0"?prefWidth="100.0">
          ????????????????????????????
          ????????????????????????????????"5.0"?/>
          ????????????????????????????

          ????????????????????????????
          ????????????????????????????????"5.0"?left="5.0"?right="5.0"?top="5.0"?/>
          ????????????????????????????

          ????????????????????????
          ????????????????????????"22.0"?prefWidth="40.0"?/>
          ????????????????????????"btnToDiaryList"?layoutX="400.0"?layoutY="250.0"?mnemonicParsing="false"?text="btnToDiaryList"?onAction="#btnToDiaryList"?prefHeight="22.0"?prefWidth="100.0">
          ????????????????????????????
          ????????????????????????????????"5.0"?/>
          ????????????????????????????

          ????????????????????????????
          ????????????????????????????????"5.0"?left="5.0"?right="5.0"?top="5.0"?/>
          ????????????????????????????

          ????????????????????????
          ????????????????????

          ????????????????
          ????????????????"hBox2"?>
          ????????????????????
          ????????????????????????"1"?layoutX="240.0"?layoutY="250.0"?mnemonicParsing="false"?text="計算器"?onAction="#btnToCalculator"?prefHeight="22.0"?prefWidth="100.0">
          ????????????????????????????
          ????????????????????????????????"5.0"?/>
          ????????????????????????????

          ????????????????????????????
          ????????????????????????????????"5.0"?left="5.0"?right="5.0"?top="5.0"?/>
          ????????????????????????????

          ????????????????????????
          ????????????????????????"22.0"?prefWidth="40.0"?/>
          ????????????????????????"2"?layoutX="320.0"?layoutY="250.0"?mnemonicParsing="false"?text="時鐘"?onAction="#btnToShowTime"?prefHeight="22.0"?prefWidth="100.0">
          ????????????????????????????
          ????????????????????????????????"5.0"?/>
          ????????????????????????????

          ????????????????????????????
          ????????????????????????????????"5.0"?left="5.0"?right="5.0"?top="5.0"?/>
          ????????????????????????????

          ????????????????????????
          ????????????????????????"22.0"?prefWidth="40.0"?/>
          ????????????????????????"3"?layoutX="400.0"?layoutY="250.0"?mnemonicParsing="false"?text="btnToDiaryList"?onAction="#btnToDiaryList"?prefHeight="22.0"?prefWidth="100.0">
          ????????????????????????????
          ????????????????????????????????"5.0"?/>
          ????????????????????????????

          ????????????????????????????
          ????????????????????????????????"5.0"?left="5.0"?right="5.0"?top="5.0"?/>
          ????????????????????????????

          ????????????????????????
          ????????????????????

          ????????????????
          ????????????

          ????????
          ????



          ?FxmlView 界面試圖類創(chuàng)建:

          import?de.felixroske.jfxsupport.AbstractFxmlView;
          import?de.felixroske.jfxsupport.FXMLView;

          @FXMLView(value?=?"/fxml/index.fxml",title?=?"index",bundle?=?"i18n.index",encoding?=?"utf-8")
          public?class?IndexFxmlView?extends?AbstractFxmlView?{

          }


          FxmlController 界面操作方法淚創(chuàng)建:

          import?com.maxinhai.diary.DiaryApplication;
          import?com.maxinhai.diary.view.*;
          import?de.felixroske.jfxsupport.FXMLController;
          import?javafx.event.ActionEvent;
          import?javafx.fxml.FXML;
          import?javafx.fxml.Initializable;
          import?javafx.scene.control.Button;
          import?javafx.scene.control.Label;

          import?java.net.URL;
          import?java.util.ResourceBundle;

          /**
          ?*?首頁控制器
          ?*/
          @FXMLController
          public?class?IndexController?implements?Initializable?{

          ????@FXML
          ????private?Button?btn;

          ????@FXML
          ????private?Button?btnLogin;

          ????@FXML
          ????private?Button?listView;

          ????@FXML
          ????private?Label?label;

          ????private?ResourceBundle?resourceBundle;

          ????@Override
          ????public?void?initialize(URL?location,?ResourceBundle?resources)?{
          ????????resourceBundle?=?resources;
          ????}

          ????@FXML
          ????public?void?btnClick(ActionEvent?actionEvent)?{
          ????????label.setText("helloWorld");
          ????}


          ????/**
          ?????*?跳轉(zhuǎn)場景
          ?????*?@param?actionEvent
          ?????*/
          ????@FXML
          ????public?void?btnToPage(ActionEvent?actionEvent)?{
          ????????DiaryApplication.showView(ImageFxmlView.class);
          ????}

          ????/**
          ?????*?跳轉(zhuǎn)場景
          ?????*?@param?actionEvent
          ?????*/
          ????@FXML
          ????public?void?btnToListViewPage(ActionEvent?actionEvent)?{
          ????????DiaryApplication.showView(ListViewFxmlView.class);
          ????}

          ????/**
          ?????*?跳轉(zhuǎn)場景
          ?????*?@param?actionEvent
          ?????*/
          ????@FXML
          ????public?void?btnToTableViewPage(ActionEvent?actionEvent)?{
          ????????DiaryApplication.showView(TableViewFxmlView.class);
          ????}

          ????/**
          ?????*?跳轉(zhuǎn)場景
          ?????*?@param?actionEvent
          ?????*/
          ????@FXML
          ????public?void?btnToMenuBar(ActionEvent?actionEvent)?{
          ????????DiaryApplication.showView(MenuBarFxmlView.class);
          ????}

          ????/**
          ?????*?跳轉(zhuǎn)場景
          ?????*?@param?actionEvent
          ?????*/
          ????@FXML
          ????public?void?btnToDiaryList(ActionEvent?actionEvent)?{
          ????????DiaryApplication.showView(DiaryListFxmlView.class);
          ????}

          ????/**
          ?????*?跳轉(zhuǎn)場景
          ?????*?@param?actionEvent
          ?????*/
          ????@FXML
          ????public?void?btnToCalculator(ActionEvent?actionEvent)?{
          ????????DiaryApplication.showView(CalculatorFxmlView.class);
          ????}

          ????@FXML
          ????public?void?btnToShowTime(ActionEvent?actionEvent)?{
          ????????DiaryApplication.showView(ShowTimeFxmlView.class);
          ????}

          }


          StartUpPage啟動動畫類:

          import?com.maxinhai.diary.config.Constant;
          import?de.felixroske.jfxsupport.SplashScreen;
          import?javafx.scene.Parent;
          import?javafx.scene.control.ProgressBar;
          import?javafx.scene.image.ImageView;
          import?javafx.scene.layout.VBox;

          /**
          ?*?應(yīng)用啟動頁
          ?*/
          public?class?StartUpPage?extends?SplashScreen?{


          ????@Override
          ????public?Parent?getParent()?{
          ????????final?ImageView?imageView?=?new?ImageView(getClass().getResource(getImagePath()).toExternalForm());
          ????????final?ProgressBar?splashProgressBar?=?new?ProgressBar();
          ????????splashProgressBar.setPrefWidth(imageView.getImage().getWidth());
          ????????final?VBox?vbox?=?new?VBox();
          ????????vbox.getChildren().addAll(imageView,?splashProgressBar);
          ????????return?vbox;
          ????}

          ????/**
          ?????*?是否顯示:?true顯示
          ?????*?@return
          ?????*/
          ????@Override
          ????public?boolean?visible()?{
          ????????return?true;
          ????}

          ????/***
          ?????*?啟動頁圖片
          ?????*?@return
          ?????*/
          ????@Override
          ????public?String?getImagePath()?{
          ????????//?圖片路徑
          ????????return?Constant.START_UP_IMAGE_URL;
          ????}
          }

          ?

          ?application.properties

          server.port=10010

          畢竟是SpringBoot項(xiàng)目啟動端口還是要配置的

          ?

          要是嫌棄上面fxml、controller里的代碼太多,可以刪除里面的大多數(shù)節(jié)點(diǎn),簡單跑起來





          粉絲福利:Java從入門到入土學(xué)習(xí)路線圖

          ??????

          ??長按上方微信二維碼?2 秒


          感謝點(diǎn)贊支持下哈?

          瀏覽 93
          點(diǎn)贊
          評論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報
          評論
          圖片
          表情
          推薦
          點(diǎn)贊
          評論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  亚洲无码国产乱伦 | 操逼达人 | 青娱乐在线伊人网 | 亚洲综合中文字幕在线 | 久久夜色精品国产噜噜亚洲AV |