gpt4 book ai didi

JavaFX 只能输入数字或字母,并允许按 TAB/ESCAPE/BACKSPACE 等

转载 作者:行者123 更新时间:2023-12-01 21:11:15 25 4
gpt4 key购买 nike

下面的 Java 正则表达式在我的程序中的 TextField 中运行。它将允许用户仅输入数字[0-9],按键盘TABESCAPE。如何允许按键盘 BACKSPACEDELETE 键?

void restrictNumbersOnly(KeyEvent keyEvent) {
if (keyEvent.getCharacter().matches("[^\\e\t\r\\d+$]")) {
/* SOME WARNING MSG */
keyEvent.consume();
}
}

keyEvent.getCode() == KeyCode.BACK_SPACE 不起作用。我尝试这样做:

void restrictLettersOnly(KeyEvent keyEvent) {
if (keyEvent.getCharacter().matches("[^\\e\t\r\\d+$]")) {
if (keyEvent.getCode() == KeyCode.BACK_SPACE) {
/* DO NOTHING */
} else {
/* SOME WARNING MSG */
keyEvent.consume();
}
}
}

最佳答案

我更改了问题标题以帮助其他人更好地搜索。

所以,我通过这样做解决了这个问题:

只允许输入字母:

   textField.textProperty().addListener((observable, oldValue, newValue) -> {
if (!newValue.matches("\\sa-zA-Z*")) {
textField.setText(newValue.replaceAll("[^\\sa-zA-Z]", ""));
}
});

只允许输入数字:

   textField.textProperty().addListener((observable, oldValue, newValue) -> {
if (!newValue.matches("\\d*")) {
textField.setText(newValue.replaceAll("[^\\d]", ""));
}
});

这些代码还允许用户按ESCAPEDELETEBACKSPACESPACE...等等...

关于JavaFX 只能输入数字或字母,并允许按 TAB/ESCAPE/BACKSPACE 等,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41107912/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com