我的listener
已应用于我的字段:
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 event
来自javafx.scene.input.KeyEvent
,KeyEvent.VK_ENTER
来自com.sun.glass.events.KeyEvent
。我不知道如何判断ENTER键是否触发KEY_TYPED
事件。
答案 0 :(得分:1)
如果您想在文本更改时进行输入验证,可以在textProperty
的{{1}}上使用监听器:
TextField
要检测何时按下 Enter ,您可以使用textField.textProperty().addListener((observable, oldValue, newValue) ->
System.out.println("Input Validation"));
onActionProperty
如果您想阻止用户输入未通过验证逻辑的字符,那么您可以使用textField.setOnAction(event -> System.out.println("Enter pressed: Word Check"));
(此textProperty˙
仅接受整数,而不是收听TextFormatter
。 ):
TextField