gpt4 book ai didi

java - 如果选中某些按钮,则加载不同的场景

转载 作者:行者123 更新时间:2023-12-01 16:55:07 25 4
gpt4 key购买 nike

因此,如果单击某些按钮,我将尝试加载三个特定场景。这是一个简单的加载屏幕,调用三个其他场景,其中有 2 个文本字段(txtUser、txtPass)和 2 个按钮(btnCancel、btnEnter)和 2 个选择按钮(btnStd、btnProf),分别加载 fxml - 如果单击两个按钮,则为第三个 fxml已禁用

棘手的部分在于这个 Enter 按钮,该按钮在为学生和教师启用或禁用其他两个按钮后调用。如果同时按下两个按钮,这还会加载第三个:管理员

@FXML
private void onActionBtnEnter(ActionEvent event) {

try {
if (txtUser.getText() == null || txtUser.getText().isEmpty()) {
new Message().showModal(Alert.AlertType.ERROR, "User validation",
(Stage) btnEntrar.getScene().getWindow(),"Needs username");}

else if (txtPass.getText() == null || txtPass.getText().isEmpty()) {
new Message().showModal(Alert.AlertType.ERROR, "Password validation",
(Stage) btnEntrar.getScene().getWindow(), "Needs password");}

else {
FlowController.getInstance().goMain(); //this is one of the fxlm views to load
((Stage) btnEnter.getScene().getWindow()).close(); //closes the login and loads the scene
}
}
catch (Exception ex) {
Logger.getLogger(LandingViewController.class.getName()).log(Level.SEVERE, "Login error.", ex);
}
}

这工作正常,但不是选择特定的 fxml 来加载,而是只加载包含administratorview.fxml 的 goMain()。我还做了 goMain2() 和 goMain3()。

对于学生,应加载 Studentsview.fxml。对于教授来说,profesorview.fxml。以下按钮方法和操作的代码

@FXML
private void onActionBtnStd(ActionEvent event) {
btnStd.setDisable(true);
txtPass.setDisable(false);
txtUser.setDisable(false);
}

@FXML
private void onActionBtnProf(ActionEvent event) {
btnProf.setDisable(true);
txtPass.setDisable(false);
txtUser.setDisable(false);
}

到目前为止还不错,但是只加载一个 fxml,因为它们还没有被调用。所以我想在 btnEnter 操作中应该有一些我尝试过的代码(与上面相同的事件):

@FXML
private void onActionBtnEntrar(ActionEvent event) {

else if (btnStd.getValue().isDisabled()){ //added else if but I don't know how to call a boolean property in a void
FlowController.getInstance().goMain();
((Stage) btnEnter.getScene().getWindow()).close();}

else if (btnProf.getValue().isDisabled()){
FlowController.getInstance().goMain2();
((Stage) btnEnter.getScene().getWindow()).close();}

else if (btnProf.getValue().isDisabled() && btnStd.getValue().isDisabled()){
FlowController.getInstance().goMain3();
((Stage) btnEnter.getScene().getWindow()).close();}

最佳答案

愚蠢的我,我在 if 语句中添加了 .getValue() - 所需要的只是放置 component.isDisabled() 或 .isEnabled() (如果它包含 boolean 值)。但是,如果两者都被选中禁用,它不会加载管理 View - 它会加载学生 View 。进一步调查...

编辑:好的,最后一个“else if”必须首先调用,而不是其他两个。它就像一个魅力。

关于java - 如果选中某些按钮,则加载不同的场景,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61602739/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com