我正在JavaFX中制作注册表。我有按钮提交输入的数据,这是完美的。但我还想让用户在用户输入时提交数据?
如果按下按钮或按下输入,有没有办法在一个if语句中组合?
我知道我可以单独制作它,但后来我需要加倍我的代码。
答案 0 :(得分:3)
你必须分别听按键事件和按键事件,没有办法用一个监听器处理这两个事件:按下按钮将触发ActionEvent
,按键将发出{{ {1}}。
但是,如果您创建了一个方法来进行“数据提交”,而您只是在两个侦听器中调用此方法,则可以避免代码重复。
KeyEvent
或者使用lambdas的简短形式:
submitButton.setOnAction(new EventHandler<ActionEvent>() {
@Override
public void handle(ActionEvent event) {
submitData();
}
});
scene.setOnKeyPressed(new EventHandler<KeyEvent>() {
@Override
public void handle(KeyEvent ke) {
switch (ke.getCode()) {
case ENTER:
submitData();
break;
default:
break;
}
}});