java - 创建一个仅允许用户在 Java 中输入整数/ double 的文本字段(或类似字段)的简单方法是什么?

标签 java user-interface swing jtextfield jformattedtextfield

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

谢谢!

坏 Pandas :D

最佳答案

  1. Register InputVerifier并从 JFormattedTextField

    调用方法 getValue
    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);
      }
    

    }

关于java - 创建一个仅允许用户在 Java 中输入整数/ double 的文本字段(或类似字段)的简单方法是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2510047/

相关文章:

java - 如何在Java中使用关键字-值对以及{}和换行符来解析文件?

java - 程序执行和GUI

java - 是否有 "rearrangable accordian"组件的 Swing 实现?或者它叫什么?

具有透明度的java全屏窗口

java - 是否可以在 Junit 5 中使用 Java 功能接口(interface)实现(例如 Supplier)作为 MethodSource?

java - 如何找到可迭代对象的大小?

java - 根据时间更改匹配状态(午夜结束时失败 00 :00 )

ios - 如何制作像 Gmail 中那样的 iOS 侧边抽屉导航

java - 与一个 JTable 相关的多个 Jcombo 框

java - 此代码不会显示矩形,但它应该