JavaFX如何在一个注册表单中组合更多的EventHandler?

时间:2016-05-15 09:13:56

标签: java forms javafx

我正在JavaFX中制作注册表。我有按钮提交输入的数据,这是完美的。但我还想让用户在用户输入时提交数据?

如果按下按钮或按下输入,有没有办法在一个if语句中组合?

我知道我可以单独制作它,但后来我需要加倍我的代码。

1 个答案:

答案 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;
        }
 }});