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. scipy 图像处理(scipy.misc、scipy.ndimage)、matplotlib 图像处理

    from scipy.misc import imread / imsave / imshow imresize / imrotate / imfilter 1. scipy.misc 下的图像处理 ...

  2. Spring Cloud和Docker搭建微服务平台

    用Spring Cloud和Docker搭建微服务平台 This blog series will introduce you to some of the foundational concepts ...

  3. java多线程模拟生产者消费者问题,公司面试常常问的题。。。

    package com.cn.test3; //java多线程模拟生产者消费者问题 //ProducerConsumer是主类,Producer生产者,Consumer消费者,Product产品 // ...

  4. C++学习笔记26,虚函数

    在C++里面,虚拟功能是功能的一类重要!不同目的可以通过在不同的虚拟功能来达到同样的动作被定义. 举一个简单的例子: #include <iostream> #include <st ...

  5. MongoDB Shell 经常使用的操作

    数组查询 数组查询 MongoDB 中有子文档的概念,一个文档中能方便的嵌入子文档,这与关系性数据库有着明显的不同.在查询时,语法有一些注意点. 样例代码,假如我们的一个集合(tests)中存在标签键 ...

  6. WPF 将Bitmapsource转换到Emgu.cv.image

    原文:WPF 将Bitmapsource转换到Emgu.cv.image Transform WPF BitmapSource to Emgu.CV.Image******* /// <summ ...

  7. go语言学习之路(一)

    Go 语言简介 Go 是一个开源的编程语言,它能让构造简单.可靠且高效的软件变得容易. Go是从2007年末由Robert Griesemer, Rob Pike, Ken Thompson主持开发, ...

  8. WPF 悬浮键盘

    原文:WPF 悬浮键盘 public class TouchScreenKeyboard : Window { #region Property & Variable & Constr ...

  9. SingletonBaseTemplate

    public static byte[] writeValueAsZipByte(List<CraneDataDtls> dtls) { ObjectMapper mapper = new ...

  10. Bootstrap 屏幕类型

    /* 超小屏幕(手机,小于 768px) */ /* 没有任何媒体查询相关的代码,因为这在 Bootstrap 中是默认的(还记得 Bootstrap 是移动设备优先的吗?) */ /* 小屏幕(平板 ...