快速业务通道

Swing通用数据验证模块 - 编程入门网

作者 佚名技术 来源 NET编程 浏览 发布时间 2012-06-15
ding和Hibernate Validator开发数据验证。还有一个重要的问题,那就是数据错 误的时候,需要在用户界面上展示相应的信息,例如Error icon和错误提示,这部分我考虑使用JXLayer 。

你可以在如下链接中找到相关框架的具体信息:

1. Hibernate Validator: http://www.hibernate.org/hib_docs/validator/reference/en/html_single/

2. Beansbinding: https://beansbinding.dev.java.net/

3. JXlayer: http://weblogs.java.net/blog/alexfromsun/

Swing通用数据验证模块(2)

时间:2011-08-13 葛京

阅读这篇文章,不需要你熟悉这些类库,不过了解这些类库能够帮助你更好地理解这篇文章。

我的这个通用模块是参考JXLayer里面的一个demo类TextValidationDemo的,这个JXlayer是由 Alexander Potochkin开发的,我很喜欢,使用起来很顺手,强烈推荐使用。

下面开始介绍代码。首先是建立一个java项目,对于这个小项目,我使用netbeans。这里说句题外话 ,中型和大型的Swing应用,建议最好还是不要使用netbeans的GUI Builder,一方面它生成的代码超级烂 ,另一方面很难测试。目前市面上有很多好用的layout的框架,例如 JGoodies form和MigLayout,开发 效率绝对不比netbeans的GUI builder差,你还不需要面对令人头疼的机器成的代码。

项目创建好后,加入类库:

Swing通用数据验证模块 - 编程入门网

然后写一个persistence bean:

package de.jingge.domain; import javax.persistence.Entity; import javax.persistence.GeneratedValue; import javax.persistence.GenerationType; import javax.persistence.Id; import org.hibernate.validator.Length; import org.hibernate.validator.NotEmpty; @Entity public class Country extends AbstractBean { private static final long serialVersionUID = 5341382564159667599L; public static final String PROPERTYNAME_NAME = "name"; public static final String PROPERTYNAME_CODE = "code"; private String name; private String code; private Long id; public Country() { } public Country(String code, String name) {    super();    setCode(code);    setName(name); } @Id @GeneratedValue(strategy = GenerationType.AUTO) public Long getId() {    return id; } public void setId(Long id) {    this.id = id; } @NotEmpty public String getName() {    return name; } public void setName(String name) {    firePropertyChange(PROPERTYNAME_NAME, this.name, this.name = name); } @Length(min=2, max= 2, message="Code length must be 2") @NotEmpty public String getCode() {    return code; } public void setCode(String code) {    firePropertyChange(PROPERTYNAME_CODE, this.code, this.code = code); } }

Swing通用数据验证模块(3)

时间:2011-08-13 葛京

这里我为了强调可以在Swing客户端直接使用和验证persistence bean,故意写了一个persistence bean,实际应用中,这个类只需要是一个pojo就行了。

这个Country类代表一个国家,它有两个属性,code和name,我给他们分别加上个各自的验证限制。 code不能为空,且必须正好是两个字符,例如CN,DE,US。name不能为空。这些annotaion均出自 Hibernate Validator。那个父类AbstractBean出自SwingX类库,我们的Country类继承了它之后就可以支 持property change event了。

ok, 下面可以开始编写这个模块的核心代码了。前面说过,我会使用JXlayer。使用它的好处是:所有 JXlayer的painting event都会被转到UI类来,我们只需要编写一个集成Hibernate Validator的UI类

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号