通过Java中的JFormattedTextFields进行验证

时间:2011-08-06 11:31:33

标签: java swing validation jformattedtextfield

我想要两个具有以下验证的文本域

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

    我已经使用了两个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 个答案:

答案 0 :(得分:5)

另请考虑使用InputVerifier,如Validating Input中所述。

答案 1 :(得分:2)

由于限制不是数据格式限制,而是数据值限制,因此NumberFormat不适用于问题的“第二”部分。我认为你需要在第二部分使用DocumentFilter。要详细了解如何使用这些内容,请在此处查看:Implementing a Document Filter