欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

Java开发桌面程序学习(九)——JavaFxTemplate JavaFx模版 更简单进行JavaFx程序开发

程序员文章站 2022-07-09 20:51:08
JavaFxTemplate 使用说明 项目基于maven,请确保maven配置成功,否则,可能会出现问题 项目内置了commons io的jar包,Jfoenix的jar包以及常用的工具类 ,具体使用请看注释! 原本是想将 单独出来,打成一个jar包,不过,项目引用之后一起打成jar包,项目的ja ......

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包会失败,如下图

Java开发桌面程序学习(九)——JavaFxTemplate JavaFx模版 更简单进行JavaFx程序开发

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