• 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中的具体类中查看

  • 相关阅读:
    Weekly blog for week 1908
    Weekly blog for week 1907
    Weekly blog for week 1905&1906
    Weekly blog for week 1904
    Write Week 3 Blog beforehand
    Add Week 2 Blog
    First week of a new year
    Andriod-Log
    bat
    学习方法
  • 原文地址:https://www.cnblogs.com/stars-one/p/11096335.html
Copyright © 2020-2023  润新知