我有一个带有登录表单的JavaFX场景和一个从外面滑入场景的注册表单。主要的锚定页是root
,其他两个是login_form
和register_form
。每个表单都有一个按钮 - login
即调用login()
和register
即调用register()
。
login_trigger
和register_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();
}
});