Java開發桌面程序學習(九)——JavaFxTemplate JavaFx模版 更簡單進行JavaFx程序開發


JavaFxTemplate

使用說明

項目基於maven,請確保maven配置成功,否則,可能會出現問題

項目內置了commons-io的jar包,Jfoenix的jar包以及常用的工具類JFxUtils,具體使用請看注釋!

原本是想將JFxUtils單獨出來,打成一個jar包,不過,項目引用之后一起打成jar包,項目的jar包跑不起來,報找不到類的錯誤。

復制該項目,修改項目名,之后修改pom.xml中的 groupId,artifactId,version。
打開IDEA,Main.java的里面需要重新導入一下包名,之后即可成功運行。

打jar包的時候,需要注意,把META-INF的路徑設置在out目錄下,否則,運行jar包會失敗,如下圖

JFxUtils使用說明

介紹

這是一個JFX的工具庫,Intent可以簡單地實現打開一個新窗口並傳遞數據,DialogBuilder可以簡單地生成對話框,MyUtils有些常用的功能

使用

  • MyUtils 封裝了一些常用的的方法
  • Intent與BaseController 打開新窗口,並傳遞數據
  • DialogBuilder 基於Jfoenix,快速生成material Design風格的對話框

Intent的使用

使用Intent,可以打開一個新窗口,還能傳遞數據

如何使用?

打開一個新窗口

步驟:new一個Intent,調用start方法即可

下面是幾種不同的構造方法

  • Intent(String fxmlName)
  • Intent(String fxmlName, String title)
  • Intent(String fxmlName, String title,String iconName)
  • Intent(String fxmlName, int width, int height)
  • Intent(String fxmlName, int width, int height, String title)
  • Intent(String fxmlName, int width, int height, String title, String iconName)

PS:

  • fxmlName fxml的名字,不需要寫擴展名
  • iconName 圖標名,需要寫擴展名

例子:

  • 簡單例子
//在一個controller中
//fxml名字為test
//默認寬高 600*400 
Intent intent = new Intent("test");
//打開新窗口
intent.start();
  • 設置標題
Intent intent = new Intent("test","hello world");
intent.start();
  • 設置寬高
Intent intent = new Intent("test",800,400);
intent.start();

打開新窗口並傳遞數據

本工具中,有一個BaseController,想要傳遞數據,就得讓controller繼承這個BaseController,之后,new一個intent,使用addData方法傳入數據

可以傳遞的數據類型有int,boolean,String,List,Object

  • addData(String key, int data)
  • addData(String key, boolean data)
  • addData(String key, String data)
  • addData(String key, List<?> data)
  • addData(String key, Object data)

在controller中getIntent得到intent的實例,之后通過以下方法獲得數據

  • getDataInteger(String key)
  • getDataBoolean(String key)
  • getDataString(String key)
  • getDataList(String key,Class clazz)
  • getDataObject(String key) 需要轉型

例子:

//某個controller中打開新窗口,並傳遞list數據
Intent intent = new Intent("test",800,400);
intent.addData("list",studentlist);
intent.start();

//test對應的controller,接收list數據
package wan.dormsystem.controller;

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

import wan.dormsystem.bean.Student;

/**
 * @author StarsOne
 * @date Create in  2019/6/21 0021 16:44
 * @description
 */
public class TestController extends BaseController {
    @Override
    public void initialize(URL location, ResourceBundle resources) {
		//這里一定要有判斷,不然會有空指針異常
        if (getIntent() != null) {
            List<Student> list = getIntent().getDataList("list", Student.class);
            for (Student student : list) {
                System.out.println(student.toString());
            }
        }
    }
}

DialogBuilder

DialogBuilder使用

MyUtils

  • closeWindow(Control control) 關閉窗口
  • Image getImg(String fileName) 獲得圖片
  • void setLinkAutoAction(Hyperlink hyperlink) 設置鏈接自動跳轉
  • void setLinkAction(Hyperlink hyperlink, LinkActionHander hander) 設置鏈接點擊事件

更多使用詳情,可以直接去JavaFxTemplate中的具體類中查看


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM