【发布时间】:2026-02-07 18:45:01
【问题描述】:
如何将用户的输入限制为仅十六进制值?
使用十进制表示法,范围是从 0 到 16383,但我想让用户在TextField 中键入一个十六进制数。因此范围应该是从 0x0000 到 0x3FFF。我已经通过SceneBuilder 构建了我的 GUI,因此我只需要一个函数来处理用户输入的限制和转换。
编辑
这是我的版本:
startAddressField.textProperty().addListener((observable, oldValue, newValue) -> {
if (!newValue.matches("^[0-9A-F]?")) {
startAddressField.setText(oldValue);
}
});
【问题讨论】:
-
你已经尝试了什么?以这种方式发布您的代码,我们可以帮助您找出哪里出错了。您可以在字段上设置一个 TextFormatter 来监控和限制输入。
-
提示:您可能需要现场的客户编辑器