有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

通过Java中的JFormattedTextFields进行swing验证

我想有两个文本字段,将有以下验证

  1. 两者都应该是整数
  2. 一个文本字段中的值应该是另一个文本字段的整数倍

我已经使用了两个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。但我该怎么做呢?请帮帮我


共 (2) 个答案

  1. # 2 楼答案

    NumberFormat不适用于问题的“第二”部分,因为限制不是数据格式限制,而是数据值限制。我认为第二部分需要使用文档过滤器。要了解有关如何使用这些的更多信息,请查看此处:Implementing a Document Filter