了解Eclipse中的JFace数据绑定,第3部分: 使用高级功能 - 编程入门网
alse 则返回 No。现在,通过创建类 StringToBooleanConverter,创建相应的转换程序。交换转换源和转换目标的类型,并将 convert() 方法改为如果值为 Yes,则返回 true;如果值为 No 则返回 false。Java 5 自动装箱负责对象转换。
接下来,需要更改 UI。删除与复选框相关联的代码并将其替换为清单 14 中的代码。此清单还包含对 bindGUI() 方法的替换绑定方法调用。回想第 2 部分中,组合框小部件有一个选项属性可供绑定。绑定行还为 BindSpec 类使用了另一个构造函数,该类允许指定 BooleanToStringConverter 和 StringToBooleanConverter 的使用量。 清单 14. 用组合框替换复选框
实现自定义验证程序 示例中的字段此刻都只获取字符串。但是,Years Married 字段应当限定为数字。实现限定的一种方法是使用自定义验证程序。创建一个名为 YearsMarriedValidator 的类并将清单 15 中的代码粘贴到其中。 清单 15. 自定义验证程序
了解Eclipse中的JFace数据绑定,第3部分: 使用高级功能(10)时间:2011-02-11 IBM Scott Delap这段代码将同时实现 isPartiallyValid() 和 isValid() 方法。对于 isPartiallyValid() 方法,将尝试把输入的字符串转换为一个整数。如果系统抛出了 NumberFormatException,则知道尝试失败。结果将返回 ValidationError。对于本示例,如果输入数字 5,则 isValid() 方法将返回一个 ValidationError。最后需要做的是将验证程序包含到 yearsMarriedTxt 字段的 BindSpec 中,如清单 16 所示。 清单 16. 绑定验证程序
此时,打开修改后的示例,然后在组合框中选中 Yes 启用 Years Married 字段。尝试在 Years Married 字段中输入字符 abc。不会有任何变化,因为验证程序的部分验证检查将阻止输入数字。现在输入数字 1,然后尝试删除该数字。有趣的是,您会发现不能删除。因为并未编码让验证程序允许 null 或空字符串,因此不允许删除数字,因为这样做会导致产生无效的值。修改部分验证方法以 |
凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢! |