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
MyUtils
- closeWindow(Control control) 關閉視窗
- Image getImg(String fileName) 獲得圖片
- void setLinkAutoAction(Hyperlink hyperlink) 設定連結自動跳轉
- void setLinkAction(Hyperlink hyperlink, LinkActionHander hander) 設定連結點選事件
更多使用詳情,可以直接去JavaFxTemplate中的具體類中檢視