【发布时间】:2021-12-18 16:14:02
【问题描述】:
我如何做 textField 在 Java 中只接受字母“N 或 E”?不接受数字和其他字符。
textField.textProperty().addListener((observable, oldValue, newValue) -> {
if (newValue.length() > 1) textField.setText(oldValue);
if (newValue.matches("[^\\d]")) return;
textField.setText(newValue.replaceAll("\\d*", ""));
});
我试过了,这对 maxValue 有效。但我需要 textField 只接受“N”和“E”字符。 那我该怎么做呢?
【问题讨论】:
-
你指的是单字母
N还是单字母E?或它们的任何组合,例如NE,NNNNN,EEEEEE,ENEN? -
使用
TextFormatter。不要使用侦听器来修改更改。看看stackoverflow.com/questions/34407694/… 是否回答了你的问题。 -
@guninvalid 不,我的意思是只得到单个字母 N 或 E。
-
还要注意,如果用户需要在两个选项之间进行选择,
TextField可能不是最好的用户体验。请考虑使用单选按钮、复选框或组合框。 -
你的任务是什么?为什么它需要那样工作?
标签: java validation javafx textfield