gpt4 book ai didi

JavaFX TextField 文本验证

转载 作者:行者123 更新时间:2023-12-02 11:21:05 26 4
gpt4 key购买 nike

我有一个应用于我的字段的监听器:

nameTextField.addEventHandler(KeyEvent.KEY_TYPED, fieldChangeListener(50));

事件处理程序:

private EventHandler<KeyEvent> fieldChangeListener(final Integer max_Lengh) {
return new EventHandler<KeyEvent>() {
@Override
public void handle(KeyEvent event) {
TextField field = (TextField) event.getSource();
String text = field.getText();
// I need here something like:
if(KeyEvent.VK_ENTER){
// do special part for ENTER KEY
}
}
}
}

问题是KeyEvent事件来自javafx.scene.input.KeyEvent,而KeyEvent.VK_ENTER来自com.sun.glass .events.KeyEvent。我不知道如何确定 ENTER 键是否触发了 KEY_TYPED 事件。

最佳答案

如果您想在文本更改时进行输入验证,您可以在 TextFieldtextProperty 上使用监听器:

textField.textProperty().addListener((observable, oldValue, newValue) ->
System.out.println("Input Validation"));

要检测何时按下 Enter,您可以使用 onActionProperty

textField.setOnAction(event -> System.out.println("Enter pressed: Word Check"));
<小时/>

如果您想防止用户输入未通过验证逻辑的字符,那么您可以使用 TextFormatter (此TextField 仅接受整数):

textField.setTextFormatter(new TextFormatter<>(change ->
(change.getControlNewText().matches("([1-9][0-9]*)?")) ? change : null));

关于JavaFX TextField 文本验证,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49918079/

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