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

Java开发桌面程序学习(九)——JavaFxTemplate JavaFx模版 更简单进行JavaFx程序开发的更多相关文章

  1. Directx11学习笔记【一】 最简单的windows程序HelloWin

    声明:本系列教程代码有部分来自dx11龙书及dx11游戏编程入门两本书,后面不再说明 首先,在vs2013中创建一个空的解决方案Dx11Demo,以后的工程都会放在这个解决方案下面.然后创建一个win ...

  2. JavaFX入门:简单Demo-学习NetBeans开发平台

    零. 最终目标 通过两种方式(纯代码控制.FXML),实现一个简单的登录界面:   Paste_Image.png 涉及到的控件: 文本(Text,动态显示内容).标签(Label,显示文本).文本域 ...

  3. 《CoffeeScript应用开发》学习:第三章-构建简单的应用程序

    字符串插值 CoffeeScript提供了一种更好的构建字符串的解决方案.在双引号字符串(单引号无效)中使用#{}包含一个动态的值. str = 'Hello, CoffeeScript.' cons ...

  4. javaweb学习总结(二十六)——jsp简单标签标签库开发(二)

    一.JspFragment类介绍 javax.servlet.jsp.tagext.JspFragment类是在JSP2.0中定义的,它的实例对象代表JSP页面中的一段符合JSP语法规范的JSP片段, ...

  5. PHP 开发 APP 接口 学习笔记与总结 - APP 接口实例 [6] 版本升级接口开发

    判定 app 是否需要加密:通过 app 表中的 status 字段来判定,加密的字符串为 app 表中的 key 字段. 在获取的客户端和服务器端(数据库表中相应字段)的版本号不一致时,返回 dat ...

  6. .Net语言 APP开发平台——Smobiler学习日志:HoverBackColor属性的简单介绍

    一.属性介绍 设置按钮按下时的背景色,默认设置为“Gray” 二.举例介绍 以Button控件为例 mobiler窗体设计界面见图1 将该属性设置为“255, 255, 128”,表示RGB颜色,属性 ...

  7. 程序包管理rpm、yum与简单编译安装程序

    Linux程序包管理 Linux中软件的安装主要有两种形式:一种是直接下载源代码包自行编译后安装,另一种直接获取rpm软件包进行安装. 程序的组成部分: 二进制程序:程序的主体文件,比如我们运行一个l ...

  8. iOS 开发 ZFUI framework控件,使布局更简单

    来自:http://www.jianshu.com/p/bcf86b170d9c 前言 为什么会写这个?因为在iOS开发中,界面的布局一直没有Android布局有那么多的方法和优势,我个人开发都是纯代 ...

  9. JavaFx开发桌面软件

    JavaFx开发桌面软件 */--> code {color: #FF0000} pre.src {background-color: #002b36; color: #839496;} Jav ...

随机推荐

  1. Spring boot quartz的相关资源

    https://github.com/82253452/banner https://github.com/lvhao/schedule-job/tree/master/src/main/java/c ...

  2. c语言学习笔记(12)——补码

    补码 编码 在计算机中存储数据的方式 原码 也叫 符号--绝对值码 最高位0表示正 1表示负, 其余二进制位是该数字的绝对值的二进制位 如 5 ---- 00000101   -5 ---- 1111 ...

  3. C#中的DataGridView

    关键字:C# DataGridView作者:peterzb来源:http://www.cnblogs.com/peterzb 1.DataGridView实现课程表 testcontrol.rar 2 ...

  4. HDU1728 从迷宫中逃脱 【方向BFS】

    从迷宫中逃脱 Time Limit: 1000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Total Sub ...

  5. MAT 专题

    http://smallnetvisitor.iteye.com/blog/1826434 运行user任务管理器查看到的pid号:

  6. JDBC学习笔记——简单的连接池

    1.使用LinkedList保存连接                                                               即使是最简单的JDBC操作,也需要包含 ...

  7. 用SendNotifyMessage代替PostMessage避免消息丢失(WIN7下消息队列的默认长度是10000,队列满后消息将被丢弃)

    大家都知道PostMessage会丢消息,但是消息队列的大小是多少呢,下面做了一个测试. 代码:   1 unit Unit1; 2 3 interface 4 5 uses 6 Windows, M ...

  8. Angular使用echarts

    安装 npm install echarts --save npm install @types/echarts --save 基本使用 定义一个dom <div id="chart& ...

  9. 首个 C++ 编译器诞生 30 周年了,来听听 C++ 之父畅谈 C++

    原文  http://www.iteye.com/news/31076   C++ 之父 Bjarne Stroustrup 在 cfront 诞生 30 周年的访谈. 整整30年前,CFront 1 ...

  10. Qt 创建圆角、无边框、有阴影、可拖动的窗口 good

    程序窗口的边框,标题栏等是系统管理的,Qt 不能对其进行定制,为了实现定制的边框.标题栏.关闭按钮等,需要把系统默认的边框.标题栏去掉,然后使用 Widget 来模拟它们.这里介绍使用 QSS + Q ...