将 TextField 限制为特定的数字范围 JavaFX?

2024-03-16

您好,我需要限制 TextField javaFX 的输入,不仅适用于整数,还适用于 1 - 19 之间的数字。例如,我应该允许输入: "3" 、"19" ...但不能输入: "33" , 44 .. 例如 :在 JavaFX 中创建数字 TextField 的推荐方法是什么? https://stackoverflow.com/questions/7555564/what-is-the-recommended-way-to-make-a-numeric-textfield-in-javafx但这限制了文本字段只能用于整数。


您可以使用regex允许您的特定数字范围(1-19)并在 TextField 上添加该验证文本格式化程序 https://docs.oracle.com/javase/8/docs/api/javax/swing/event/ChangeListener.html's filter.

正则表达式 =>([1-9]|1[0-9])

  • [1-9]任一文本字段都允许您输入 1 到 9 的数字
  • 1[0-9]或者 TextField 允许您输入 10 到 19 个数字

正则表达式电路

文本字段验证演示

public class TextFieldValidationDemo extends Application {

    private static final String REGEX_VALID_INTEGER = "([1-9]|1[0-9])";

    @Override
    public void start(Stage primaryStage) throws Exception {
        BorderPane root = new BorderPane();
        root.setCenter(getRootPane());
        primaryStage.setScene(new Scene(root, 200, 200));
        primaryStage.show();
    }

    private BorderPane getRootPane() {
        BorderPane root = new BorderPane();
        root.setCenter(getTextField());
        return root;
    }

    private TextField getTextField() {
        TextField field = new TextField();
        field.setTextFormatter(new TextFormatter<>(this::filter));
        return field;
    }

    private TextFormatter.Change filter(TextFormatter.Change change) {
        if (!change.getControlNewText().matches(REGEX_VALID_INTEGER)) {
            change.setText("");
        }
        return change;
    }
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

将 TextField 限制为特定的数字范围 JavaFX? 的相关文章

随机推荐

  • Javascript数组排序和唯一性

    我有一个像这样的 JavaScript 数组 var myData 237 124 255 124 366 255 我需要数组元素是唯一的并且已排序 myData 0 124 myData 1 237 myData 2 255 myData
  • 发出 Facebook 好友请求时可以获取吗?

    friend request 流包含 2 个字段 uid from 和 uid to 没有关于提出请求的日期信息 还有其他表包含该信息吗 Thanks 在 Facebook 论坛上得到回复 这是不可能的
  • 一段时间后服务停止工作。需要连续工作

    我正在开发一个计步器应用程序 在其中计算行走的步数并在午夜将其更新到服务器 我有一个持续运行的服务来完成这一切 这是我的服务 public class StepCounterService extends Service implement
  • jquery .hover 不适用于 AJAX 呈现的元素

    我有一些通过 AJAX 调用创建的元素 在这些元素中 有一个子元素 当悬停时需要显示另一个动态创建的子元素 当我运行 hoverjquery 在小提琴中 工作正常 当我在代码中实现它时 它不想工作 我想知道这是否取决于什么时候 hover加
  • 使用 Apache HttpClient 的 Java HTTPPost 请求

    我需要一个java程序来生成以下请求 我正在使用 Apache HttpClient 库 但仍然无法生成如下请求 这是我的 python 程序生成的 我编写了一个等效的 java 程序 但它抛出了403 2012 09 10 15 12 0
  • Java GC 是确定性的吗

    我正在具有相同 JVM 参数的 Java 产品上多次运行同一场景 每次运行都会在持续时间和 开始时间 方面给出不同的 GC 行为 这是预期的吗 您是否手动运行System gc 因为这并不能保证立即 甚至根本不 真正执行垃圾收集 对于自动垃
  • Delphi:系统菜单打开了吗?

    在 Delphi 中 我需要一个函数来确定系统菜单 分别是窗口菜 单 单击图标时出现的菜单 是否打开 原因是我正在编写一个反键盘记录器功能 它将垃圾发送到当前活动的编辑控件 这也阻止了键盘记录器读取 WinAPI 消息来读取内容 但是 如果
  • 为 bash --login -i 执行自定义初始化脚本,例如从快捷方式更改为自定义目录

    现在我在 Windows 7 上使用 MSysGit 它是从 bat 文件启动的 该文件本身调用bash exe login i启动一个外壳 此时它会执行用户主目录中的 bashrc 文件 以及其他文件 我使用这个脚本来设置环境并cd到起始
  • 如何不在主线程上运行服务?

    我正在尝试启动service然后打开socket与服务器建立连接 单击按钮我创建新的Thread然后开始服务 Thread t new Thread public void run mIntent new Intent MainActivi
  • 如何在 OS X C 代码中创建异步计时器?

    所以这个问题实际上是 为什么 time h 在 OS X 和 Linux 上不一样 但是 我已经接受了这些分歧 为了在 Unix 系统上创建计时器 我遵循了本教程http www helsinki fi atk unix dec manua
  • WordPress:为特定插件管理页面加载自定义 CSS

    我正在学习 WordPress 我想为我的插件的特定管理页面加载自定义 CSS 我阅读了 WordPress Plugin API 并执行了如下操作 I ADD MY OPTION PAGES add action admin menu m
  • 迭代 socket.io v1 中的套接字? “......没有方法‘客户’”

    在我能够写出这样的东西之前 io sockets clients forEach function socket socket emit signal data 现在 我不能并且收到错误Object
  • 关于扩展 GAS 电子表格用途的问题

    I would like to offer the opportunity to view output from the same data in a spreadsheet TBA http glasier hk blazer scri
  • 本地化 IOS 按钮标签

    我使用本地化字符串来本地化 UI 元素 除了本地化按钮标题之外 一切正常 21 title 应该是本地化文本 不起作用 我认为这可能是由按钮状态引起的 forState UIControlStateNormal 标题可以通过视图状态设置 我
  • 为更多字段设置相同的属性

    我有两个或更多文本字段 我想对它们应用相同的属性 避免编写两次或多次相同的代码 这不起作用 form validate rules name surname required true minlength 3 maxlength 50 有任
  • Line3DCollection 多彩线条边缘呈“锯齿状”

    基于matplotlib 示例代码 http matplotlib org examples pylab examples multicolored line html我构建了一条彩色线条的 3D 版本 我正在 jupyter 笔记本中工作
  • Smullyan 数值机的解决方案

    在这里我建议找到 Smullyan 数值机的解决方案 此处定义 http heras gilsanz com manuel smullyan machines html 问题陈述 它们是接受数字列表作为输入 并根据输入模式遵循一些规则将其转
  • JavaScript 字符串替换与replaceAll

    ECMAScript 2021 添加了新的 String 函数replaceAll 很久以前 在一个不远的星系里 人们使用split join或正则表达式替换所有出现的字符串 https stackoverflow com question
  • 使用 POST 进行 jQuery 缓存

    虽然我在 jQuery AJAX Post 请求中设置了 cache false 但它不会添加额外的 randomg 字符串 这是因为 post 不缓存吗 感谢您的时间 RFC 2616 http www faqs org rfcs rfc
  • 将 TextField 限制为特定的数字范围 JavaFX?

    您好 我需要限制 TextField javaFX 的输入 不仅适用于整数 还适用于 1 19 之间的数字 例如 我应该允许输入 3 19 但不能输入 33 44 例如 在 JavaFX 中创建数字 TextField 的推荐方法是什么 h