Java验证(javafx)
验证是核心javafx框架所缺少的一件事。 为了填补这一空白, controlsfx中已经存在一个第三方验证库 。 但是,我有一个问题:它不是在考虑FXML的情况下创建的。 这并不是说它不是一个很好的库,只是错过了这个细节,对我来说这是不可行的。 因此,我决定创建自己的验证框架: FXValidation 。
怎么运行的
为了向您展示FXValidation的工作原理,让我们从头开始,向您展示一个使用该库时FXML文件的外观示例。 这是一个登录屏幕的简单示例,其中用户需要输入用户名和密码:
<Label><text>User Name:</text>
</Label>
<TextField fx:id="userName" id="userName"></TextField>
<Label><text>Password:</text>
</Label>
<PasswordField fx:id="password" id="password"></PasswordField><Button text="Submit" onAction="#submitPressed"></Button><fx:define><RequiredField fx:id="requiredField1" ><srcControl><fx:reference source="userName"></fx:reference></srcControl></RequiredField><RequiredField fx:id="requiredField2" ><srcControl><fx:reference source="password"></fx:reference></srcControl></RequiredField>
</fx:define><ErrorLabel message="Please enter your username"><validator><fx:reference source="requiredField1"></fx:reference></validator>
</ErrorLabel>
<ErrorLabel message="Please enter your password"><validator><fx:reference source="requiredField2"></fx:reference></validator>
</ErrorLabel>
在FXML代码段的开头,我定义了用于输入登录详细信息的文本字段和密码字段。 除此之外,还有一个提交按钮,以便用户可以将登录信息发送到系统。 之后是有趣的部分。 首先,我们定义几个RequiredField类型的验证器。 该验证器检查所输入的内容是否为空,如果是,则在标志中存储验证是否有错误。 FXValidation框架中还内置了其他类型的验证器,但我们将稍作介绍 。 最后,我们定义了几个ErrorLabel。 这是实现IValidationDisplay的节点,实现此接口的任何类都是一个类,其目的是在验证过程中发生错误时向用户显示信息。 当前,框架中只有此类之一:ErrorLabel。 最后,我们需要在用户单击“提交”按钮时调用验证,这是在控制器中的Submit方法上完成的:
public void submitPressed(ActionEvent actionEvent) {requiredField1.eval();requiredField2.eval();
}
这将触发对我们定义的验证器的验证。 如果有错误,ErrorLabels将显示在其中定义的错误消息。 验证器还有另外一件事:验证器生效后,它们将css样式类“ error”添加到每个有错误的控件中。 这使程序员只要在控件上附加了错误类,就可以使用css改变控件的样式。 程序员可以通过检查验证器中的hasErrors属性来检查验证过程中的错误。
这是我们的示例:
细节
从上面显示的内容可以看出,基本上涉及两种类型的类:
- 验证器:负责检查目标控件( srcControl )是否符合验证规则。 如果没有,它将“错误”样式类附加到目标控件,将其hasErrors属性设置为true。 所有验证器都从ValidatorBase扩展。
- 错误显示信息:负责通知用户验证发生了什么问题,可能是必填字段,字段内容没有必要的字符数,等等。所有这些类都实现IValidationDisplay 。
在库中,当前有3个验证器,并且只有一个错误“显示器”即ErrorLabel。 验证器如下:
- RequiredField:检查目标控件( srcControl )是否具有内容,如果没有,则给出错误。
- CardinalityValidator:检查目标控件( srcControl )是否至少具有最小字符数和最大最大字符数。
- RegexValidator:根据给定的正则表达式检查目标控件( srcControl )的内容
就是这样。
翻译自: https://www.javacodegeeks.com/2014/08/validation-in-java-javafx.html
Java验证(javafx)相关推荐
- 01_Weblogic课程之概念篇:代理服务器,web服务器,应用程序服务器,JNDI概念,JTA概念,Java消息服务,Java验证和授权(JAAS),Java管理扩展,Web客户机,客户机应用程序
1 什么是服务器 Weblogic中服务器分为两种,一种是受管服务器,另外一种是管理服务器. Weblogic课程(Weblogic是Oracle公司的,最开始的是BEA公司的) 一 系统管理 ...
- java ipv6校验_JS及java验证 IPV6,IPV4地址的 正则表达式 | 学步园
JS 验证: ipv4地址验证: function queryDev(ip){ var exp=/^(\d{1,2}|1\d\d|2[0-4]\d|25[0-5])\.(\d{1,2}|1\d\d|2 ...
- java验证身份证号码是否有效源代码
转载自 java验证身份证号码是否有效源代码 1.描述 用java语言判断身份证号码是否有效,地区码.出身年月.校验码等验证算法 2.源代码 package test; import java.t ...
- Java,JavaFX的流畅设计风格滑块
JMetro的Java,JavaFX主题版本刚刚提高到4.2版. 此版本为Slider控件带来了新样式. 除此之外,您现在还可以看到一个弹出窗口,向您显示滑块的当前值. 新滑块样式 以下是旧的JMet ...
- Java,JavaFX的流利设计风格文本字段和密码字段
我刚刚发布了Java版本4.5 ,JavaFX主题JMetro . 此版本为"文本字段"和"密码字段"添加了新样式. 和往常一样,受到Fluent Design ...
- JS及java验证 IPV6,IPV4地址的 正则表达式
JS 验证: ipv4地址验证: function queryDev(ip){ var exp=/^(\d{1,2}|1\d\d|2[0-4]\d|25[0-5])\.(\d{1,2}|1\d\d|2 ...
- JAVA验证字段正则表达式相关
JAVA验证字段正则表达式相关 /***邮箱格式验证 */ public static boolean checkEmail(String email){boolean flag = false;tr ...
- Java验证时间格式是否正确
Java验证时间格式是否正确 /*** @author * @Description 时间格式校验* @Version 1.0* @since */ public class IsLegalDate ...
- 张宇/王式安 考研数学 概率论争议题 【Java验证版】
张宇/王式安 考研数学 概率论争议题 [Java验证版] 一.原题题目 1. 争议 2. 结论 二.代码实现 这个版本的代码有点乱,已更新Python代码,也许看起来好一些 链接 张宇/王式安 考研数 ...
- Java 验证表单工具类,史上最全
Java 验证表彰工具类,包含各种验证如邮箱,密码,整数,等等,全的让你想不到 package com.wiker.utils; import java.util.regex.*; /**** @ve ...
最新文章
- Go 学习笔记(19)— 函数(05)[如何触发 panic、触发 panic 延迟执行、panic 和 recover 的关系]
- 30天敏捷生活(9-11):调整30天的节奏
- STM32接口FSMC/FMC难点详解
- yii2 modal弹窗之ActiveForm ajax表单异步验证
- 四十、Java中字节流和字符流介绍和区别
- java 一对一的关系_与休眠一对一关系 - java
- spring注解大全
- (26)VHDL实现或(数据流描述)
- 公平的反义词是什么?
- Vue项目实例(一)------背景
- MATLAB深度学习工具箱汇总
- 在windows 2008 R2上无法运行vc 2015的程序,显示缺少api-ms-win-crt-string-|1-1-0.dll的解决
- 设计分享 | STM32F103RCT6利用ULN2003驱动步进电机正反转
- java TIFF转JPG并压缩
- html单元格斜线分割,在网页中画单元格斜线分割
- 基于Android的驾校预约管理系统
- python 转百分比_编程要从娃娃抓起,北乔治亚大学教授的python编程指南在此
- 学习笔记【Java 虚拟机②】垃圾回收
- windows 文件在linux下运行显示no such file or directory
- 3D仿真学习笔记(七)-- 五轴精密数控机床坐标系设定
热门文章
- 2020蓝桥杯省赛---java---B---8(走方格)
- 强行覆盖远程的gitlab 出错
- android:background大小,小Demo小知识-android:foreground与android:background
- php移动代码,移动专区周级收录如何提交 复制这段php代码即可
- java sentence_Java Sentence類代碼示例
- 摘要算法与加密(以MD5算法为例)
- thinking-in-java(21)并发2
- 哈儿小波分解和重构(降维和升维)实现算法
- azure 部署java_jClarity:在Azure上升级到Java
- oracle adf_Fn函数来构建Oracle ADF应用程序