相同键的两个Eventhandler

时间:2016-05-27 15:06:22

标签: java javafx-8

我有一个带有登录表单的JavaFX场景和一个从外面滑入场景的注册表单。主要的锚定页是root,其他两个是login_formregister_form。每个表单都有一个按钮 - login即调用login()register即调用register()

login_triggerregister_trigger是两个按钮,可以让表单滑入。当登录表单滑入时,我应该可以在按Enter键时打开login()。登记表格也是如此。

这就是我的想法,但每当我按Enter键时,都没有任何反应。按钮没有问题,但没有输入。我想将Eventhandler设置为显示的表单。

我认为当我将EventHandler设置为null时,表单正在关闭并在打开时为其赋值时,它会起作用。还有另一种方法可以做到这一点,还是我的代码中只有一个愚蠢的错误?

login_trigger.setOnAction(e -> {
    if (login_form.getTranslateX() != 0) {
        openLogin.play();
        login.setOnKeyPressed(e2 -> {
            if (e2.getCode() == KeyCode.ENTER) {
                login();
            }
            });
        if (register_form.getTranslateX() != 1280) {
            closeRegister.setToX(1280);
            closeRegister.play();
        }
    } else {
        login.setOnKeyPressed(null);
        closeLogin.setToX(-250);
        closeLogin.play();
    }
});

register_trigger.setOnAction(e -> {
    if (register_form.getTranslateX() != 1030) {
        openRegister.play();
        register.setOnKeyPressed(e2 -> {
            if (e2.getCode() == KeyCode.ENTER) {
                register();
            }
        });
        if (login_form.getTranslateX() != -250) {
            closeLogin.setToX(-250);
            closeLogin.play();
        }
    } else {
        register.setOnKeyPressed(null);
        closeRegister.setToX(1280);
        closeRegister.play();
    }
});

0 个答案:

没有答案