通过Java中的JFormattedTextFields进行swing验证
我想有两个文本字段,将有以下验证
- 两者都应该是整数
- 一个文本字段中的值应该是另一个文本字段的整数倍
我已经使用了两个JFormattedTextFields来实现这一点。这就是我到现在为止所做的
NumberFormat updateFormat,sampleFormat;
updateFormat = NumberFormat.getNumberInstance();
updateFormat.setMaximumFractionDigits(0);
updateFormat.setParseIntegerOnly(true);
sampleFormat = NumberFormat.getNumberInstance();
sampleFormat.setMaximumFractionDigits(0);
sampleFormat.setParseIntegerOnly(true);
javax.swing.JFormattedTextField jFormattedTextField1 =new javax.swing.JFormattedTextField(updateFormat);
javax.swing.JFormattedTextField jFormattedTextField2 = new javax.swing.JFormattedTextField(sampleFormat);
有了这个帮助,我的第一部分就完成了 现在我要讨论第二部分,即jFormattedTextField1的值应该是jFormattedTextField2的整数倍。我想我需要通过扩展来定制我的NumberFormat。但我该怎么做呢?请帮帮我
# 1 楼答案
也考虑使用^{} ,如Validating Input中所讨论的。
# 2 楼答案
NumberFormat不适用于问题的“第二”部分,因为限制不是数据格式限制,而是数据值限制。我认为第二部分需要使用文档过滤器。要了解有关如何使用这些的更多信息,请查看此处:Implementing a Document Filter