创建仅允许用户在Java中输入整数/双精度的文本字段(或类似文件)的简单方法是什么?

时间:2010-03-24 17:39:38

标签: java user-interface swing jtextfield jformattedtextfield

我正在寻找一种方法来确保我的文本字段(JTextField,JFormattedTextField)在调用.getText()时返回double或int而不是字符串。最好的方法是什么(如果可能的话)?

谢谢!

badPanda:D

3 个答案:

答案 0 :(得分:3)

  1. Register InputVerifier并从getValue

    调用方法JFormattedTextField
    public class FormattedTextFieldVerifier extends InputVerifier {
        public boolean verify(JComponent input) {
         if (input instanceof JFormattedTextField) {
             JFormattedTextField ftf = (JFormattedTextField)input;
             AbstractFormatter formatter = ftf.getFormatter();
             if (formatter != null) {
                 String text = ftf.getText();
                 try {
                      formatter.stringToValue(text);
                      return true;
                  } catch (ParseException pe) {
                      return false;
                  }
              }
          }
          return true;
      }
      public boolean shouldYieldFocus(JComponent input) {
          return verify(input);
      }
    

    }

答案 1 :(得分:1)

我会检查文本框回调中的输入,只需将框变为红色或在附近创建警告消息。您可以从文本框字符串中删除非数字字符。

答案 2 :(得分:1)