国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

JavaFx系列教程之一:JavaFx+Springboot+Maven 開發(fā)打包教程

Coding01 / 1541人閱讀

摘要:最近在用開發(fā)窗體程序,并且以后打算把所有的窗體軟件切換到上面,并且還想用的各種好處,集成了就可以愉快的用各種服務(wù)了。最重要的是打包工具。由于我是,一般用和,執(zhí)行命令會看到打包成了和兩種類型的安裝包。由于沒有計算機,所以還不知道打包成的狀態(tài)。

最近在用 JavaFx 開發(fā)窗體程序,并且以后打算把所有的窗體軟件切換到 JavaFx 上面,并且還想用 springboot 的__各種好處,集成了 springboot 就可以愉快的用各種服務(wù)了。所以就有了這個博客。。。
我本來想自己寫一個 javafx-spring-boot-starter 的,其原理也是很簡單地,利用 springbootaware 就可以了。但是發(fā)現(xiàn)德國這哥們已經(jīng)寫了一個,就變懶了。哎,沒辦法,我真的是太懶了。
本次的代碼Github 地址:https://github.com/spartajet/...
1. 介紹

javafxspringboot支持的庫,官方是沒有的,開源有一大堆。我采用的是springboot-javafx-support 地址是:springboot-javafx-support .這個庫文檔比較全,比較詳細,文檔地址:Spring Boot and JavaFx8 .

springboot必須用maven,否則那簡直是災(zāi)難。最重要的是打包工具。我用的是JavaFX Maven Plugin 地址:JavaFX Maven Plugin

2. Maven 配置

maven 主要配置依賴庫和插件,具體如下:


    
        org.springframework.boot
        spring-boot-starter-actuator
        ${spring.boot.version}
    
    
        org.springframework.boot
        spring-boot-starter
        ${spring.boot.version}
    
    
        org.springframework.boot
        spring-boot-starter-log4j2
        ${spring.boot.version}
    
    
        org.springframework.boot
        spring-boot-starter-test
        ${spring.boot.version}
        test
    
    
        de.roskenet
        springboot-javafx-support
        ${springboot-javafx-support.version}
    


    
        
            org.springframework.boot
            spring-boot-maven-plugin
        
        
            com.zenjava
            javafx-maven-plugin
            
                com.spartajet.fxboot.demo.MainController
                Spartajet
            
        
    

其中,比較重要的是:com.spartajet.fxboot.demo.MainController 這個是打包的時候的 main 類。Spartajet是組織名稱。

3. Javafx 集成springboot 3.1 創(chuàng)建 FXML 布局文件

可以用 SceneBuilder 工具創(chuàng)建 FXML 文件,我還是建議自己寫 FXML,剛開始可能不習(xí)慣,慢慢習(xí)慣就好了。但是,我墻裂建議布局和樣式分開,fxml 只管布局,css 只管樣式。


3.2 MainStageController

每一個 fxml 布局文件對應(yīng)一個 controller,要在 fx:controller 里面設(shè)置。

/**
 * @description
 * @create 2017-05-20 下午1:55
 * @email spartajet.guo@gmail.com
 */
@FXMLController
public class MainStageController implements Initializable {

    /**
     * Called to initialize a controller after its root element has been
     * completely processed.
     *
     * @param location  The location used to resolve relative paths for the root object, or
     *                  null if the location is not known.
     * @param resources The resources used to localize the root object, or null if
     */
    public void initialize(URL location, ResourceBundle resources) {
        
    }
}

實現(xiàn)Initializable接口,加上@FXMLController注解,其實很簡單的。看看@FXMLController的源碼:

@Component
@Retention(RetentionPolicy.RUNTIME)
public @interface FXMLController {

}
3.3 MainStageView

這個是比較特殊的,在普通的 javafx 里面沒有這個東西,但是按照 MVC 的角度來講,業(yè)務(wù)和試圖分離,還是很有必要的。

@FXMLView(value = "/view/MainStage.fxml")
public class MainStageView extends AbstractFxmlView {
}

添加的是注解@FXMLView,源碼如下:

@Component
@Retention(RetentionPolicy.RUNTIME)
public @interface FXMLView {
    String value() default "";
    String[] css() default {}; 
    String bundle() default "";
}

從這里也能看到,可以在這里注入 css 樣式文件以及 bundle 文件。還是比較方便的,我是在 fxml 里面注入的 css 文件,都是可以的。
其中還繼承了 AbstractFxmlView 的抽象類,方法比較少,最重要的是getView方法,返回的是Node對象。然后就可以隨意的用這個視圖了。

3.3 MainController
@SpringBootApplication
public class MainController extends AbstractJavaFxApplicationSupport {

    /**
     * The entry point of application.
     *
     * @param args the input arguments
     */
    public static void main(String[] args) {
        launchApp(MainController.class, MainStageView.class, args);
    }

    /**
     * Start.
     *
     * @param stage the stage
     *
     * @exception Exception the exception
     */
    @Override
    public void start(Stage stage) throws Exception {
        super.start(stage);
    }
}

繼承自AbstractJavaFxApplicationSupport 可以看到源碼,典型的Aware。然后就可以運行了。

可以看到

這個是啟動動畫。可以自定義啟動動畫,個人認為,啟動動畫還是很有必要的,因為 springboot 啟動費時還是比較多的,來個啟動動畫,逼格滿滿的。

3.4 啟動動畫
/**
 * @description
 * @create 2017-05-20 下午2:54
 * @email spartajet.guo@gmail.com
 */
public class CustomSplash extends SplashScreen {
    /**
     * Use your own splash image instead of the default one
     *
     * @return "/splash/javafx.png"
     */
    @Override
    public String getImagePath() {
        return super.getImagePath();
    }

    /**
     * Customize if the splash screen should be visible at all
     *
     * @return true by default
     */
    @Override
    public boolean visible() {
        return super.visible();
    }
}

最常用的就是這兩個方法了,一個是更換照片,另一個是是否顯示啟動動畫。

4.0 打包

JavaFX-Maven-Plugin可以打包 jar、native、webbundle、key-store這些。
由于我是 mac,一般用 jar和 native,執(zhí)行命令mvn jfx:native 會看到打包成了pkg 和 dmg 兩種類型的安裝包。并且都是180M 左右。由于沒有 windows 計算機,所以還不知道打包成 exe 的狀態(tài)。這么大的包,主要是因為 java 的 jdk 問題,模塊化以后就好了。

文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請注明本文地址:http://specialneedsforspecialkids.com/yun/71031.html

相關(guān)文章

  • Java? 教程(匿名類)

    匿名類 匿名類可以使你代碼更簡潔,它們使你能夠同時聲明和實例化一個類,它們就像局部類,除了它們沒有名稱,如果你只需要使用局部類一次,請使用它們。 聲明匿名類 雖然局部類是類聲明,但匿名類是表達式,這意味著你在另一個表達式中定義該類,以下示例HelloWorldAnonymousClasses在局部變量frenchGreeting和spanishGreeting的初始化語句中使用匿名類,但使用局部類...

    xietao3 評論0 收藏0
  • JavaFX 8 下簡化自定義控件的外部調(diào)用以及流式布局示例

    摘要:故可采用自定義控件的方式簡化外部的代碼調(diào)用。自定義控件的設(shè)計版本之后,提供寫法,此時要求必須繼承自節(jié)點對象,使用加載時,必須調(diào)用方法。 「博客搬家」 原地址: 簡書 原發(fā)表時間: 2017-05-21 有一個項目,需要模擬數(shù)千臺設(shè)備的工作情況,這數(shù)千個設(shè)備分為若干組,每組 100 臺。故需要設(shè)計一款 GUI 程序,包含 100 個自定義控件,模擬一組設(shè)備的工作情況,通過 List...

    MartinHan 評論0 收藏0
  • 「譯」Maven 集成 JavaFX 8 以及 <fx:root> 問題探討

    摘要:本文探討使用構(gòu)建集成的可執(zhí)行程序的方法,以及根節(jié)點問題。而使用后,可指導(dǎo)類作為根節(jié)點,避免了嵌套的情況。文件設(shè)計如下文件同時指明了根節(jié)點的類型,資源文件對應(yīng)的設(shè)計如下此時可實現(xiàn)開始時,純代碼方式的自定義控件設(shè)計。 「博客搬家」 原地址: 簡書 原發(fā)表時間: 2017-05-22 上一篇文章探討了使用 IntelliJ IDEA 創(chuàng)建 JavaFX 工程,進而開發(fā)了所需應(yīng)用程序。更...

    joywek 評論0 收藏0
  • JavaFX 學(xué)習(xí)筆記——窗口與控件

    摘要:創(chuàng)建窗口添加類為元素間空隙與主窗口創(chuàng)建過程相同,新建布局及控件,最后使用的方法顯示出來。設(shè)置主窗口中的按鈕事件,點擊按鈕后會顯示一個窗口。這時我們可以通過函數(shù)設(shè)置窗口關(guān)閉時觸發(fā)的事件在關(guān)閉窗口時,首先執(zhí)行這一事件處理函數(shù),再將窗口關(guān)閉。 前言 如今比較流行的桌面gui框架有WPF、WinForm、Qt、javafx等。其中WPF和WinForm目前還只能在運行Winsows上。Qt(w...

    Pocher 評論0 收藏0
  • Java? 教程(目錄)

    Java? 教程 Java教程是為JDK 8編寫的,本頁面中描述的示例和實踐沒有利用在后續(xù)版本中引入的改進。 Java教程是希望使用Java編程語言創(chuàng)建應(yīng)用程序的程序員的實用指南,其中包括數(shù)百個完整的工作示例和數(shù)十個課程,相關(guān)課程組被組織成教程。 覆蓋基礎(chǔ)知識的路徑 這些教程以書籍的形式提供,如Java教程,第六版,前往Amazon.com購買。 入門 介紹Java技術(shù)和安裝Java開發(fā)軟件并使用...

    lifesimple 評論0 收藏0

發(fā)表評論

0條評論

最新活動
閱讀需要支付1元查看
<