Итак, я пытаюсь загрузить три определенных c сцены, если нажимаются некоторые кнопки. Это простой экран загрузки, который вызывает три другие сцены с 2 текстовыми полями (txtUser, txtPass) и 2 кнопками (btnCancel, btnEnter) и 2 кнопками выбора (btnStd, btnProf), которые загружают af xml отдельно - третье f xml если оба нажаты отключены
Сложность заключается в этой кнопке 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);
}
}
Это работает нормально, но вместо выбора c f xml для загрузки он загружает только goMain (), который содержит administratorview.f xml. Я также выполнил goMain2 () и goMain3 ().
Для студентов должен загружаться файл studentview.f xml. Для профессоров profesorview.f xml. Следующий код для методов и действий кнопок
@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);
}
Пока все хорошо, но загружает только один f xml, потому что они еще не вызываются. Итак, я предполагаю, что в действии 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();}