Java開發桌面程式學習(八)——開源庫 JFXUtils 讓你更簡單地進行JavaFX開發

one發表於2019-06-23

JFxUtils

專案地址

介紹

這是一個JFX的工具庫,Intent可以簡單地實現開啟一個新視窗並傳遞資料,DialogBuilder可以簡單地生成對話方塊,MyUtils有些常用的功能

使用

JFxUtilsJavaFxTemplate是配套使用的,想要使用的話,請下載JavaFxTemplate模板

JavaFxTemplate模版已經整合了JFxUtils,直接使用即可
JavaFxTemplate專案地址

下載jar包 ,把jar包匯入到專案中
下載地址

Intent的使用

使用Intent,可以開啟一個新視窗,還能傳遞資料

如何使用?

開啟一個新視窗

步驟:new一個Intent,呼叫start方法即可

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

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

PS:

  • o 當前的controller
  • fxmlName fxml的名字,不需要寫副檔名
  • iconName 圖示名,需要寫副檔名

例子:

  • 簡單例子
//在一個controller中
//fxml名字為test
//預設寬高 600*400 
Intent intent = new Intent(this,"test");
//開啟新視窗
intent.start();
  • 設定標題
Intent intent = new Intent(this,"test","hello world");
intent.start();
  • 設定寬高
Intent intent = new Intent(this,"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) 需要轉型

例子:

  • 獲得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(Object o, String fileName) 獲得圖片
  • void setLinkAutoAction(Hyperlink hyperlink) 設定連結自動跳轉
  • void setLinkAction(Hyperlink hyperlink, LinkActionHander hander) 設定連結點選事件

更多使用詳情,請下載文件檢視,JFxUtils中文文件

相關文章