Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/user-interface/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
创建只允许用户在Java中输入int/double的文本字段(或类似字段)的简单方法是什么?_Java_User Interface_Swing_Jtextfield_Jformattedtextfield - Fatal编程技术网

创建只允许用户在Java中输入int/double的文本字段(或类似字段)的简单方法是什么?

创建只允许用户在Java中输入int/double的文本字段(或类似字段)的简单方法是什么?,java,user-interface,swing,jtextfield,jformattedtextfield,Java,User Interface,Swing,Jtextfield,Jformattedtextfield,我正在寻找一种方法来确保我的文本字段(JTextField,JFormattedTextField)在调用.getText()时返回的是double或int而不是字符串。最好的方法是什么(如果可能) 谢谢 badPanda:D我会检查文本框回调中的输入,只需将框设为红色或在附近创建一条警告消息。您可以从文本框字符串中删除非数字字符。使用 并从JFormattedTextField public class FormattedTextFieldVerifier extends InputVerif

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

谢谢


badPanda:D

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

使用

  • 并从
    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);
      }
    
    }