Ich bin Admin-Objekt in LoginController gettined. Es ist nicht null, es gibt kein Problem. Wenn ich dieses Objekt einstelle, funktioniert AdminController nicht. In meiner Initialisierung syso Ergebnis zeigt "null". Ich muss dieses Objekt in meinem anderen Controller verwenden. Mit Swing machte ich das in Controller-Konstruktoren und Swing-Konstrukteuren. Aber ich weiß nicht, wie ich das mit JavaFx machen kann. Entschuldigung für mein schlechtes Englisch. Aber wenn du Code siehst, wirst du mich verstehen.JavaFx Controller Set Objekt Anderer Controller
public class UserLoginController extends AbstractController {
@FXML
private Button joinBtn;
@FXML
private Button exitBtn;
@FXML
private Label statusLabel;
@FXML
private TextField userNo;
@FXML
private PasswordField password;
@FXML
void buttonEvent(ActionEvent event) {
if (joinBtn == event.getSource()) {
String userType = userNo.getText().substring(0, 2);
switch (userType) {
case "10":
Admin admin = DBContext.getInstance().admins().isUserExist(Integer.parseInt(userNo.getText()), password.getText());
if(admin != null) {
final String fxml = "/educationManagement/view/AdminPanel.fxml";
try {
FXMLLoader loader = new FXMLLoader(getClass().getResource(fxml));
Parent root = (Parent) loader.load();
AdminController adminController = loader.getController();
adminController.setAdmin(admin);
Scene scene = new Scene(root);
Stage stage = (Stage) ((Node)event.getSource()).getScene().getWindow();
stage.setTitle(admin.getFirstName() + " " + admin.getLastName());
stage.setScene(scene);
stage.show();
} catch (Exception e) {
e.printStackTrace();
System.out.println("fuck");
}
} else {
statusLabel.setText("Kullanıcı Adı veya Şifre Yanlış");
userNo.setText("");
password.setText("");
}
break;
case "40":
break;
case "50":
break;
default:
statusLabel.setText("Kullanıcı Adı Bulunamadı");
break;
}
}
}
}
public class AdminController implements Initializable{
private Admin admin;
@FXML
private TableView<Student> studentTable;
@FXML
private Label firstNameLbl;
public Admin getAdmin() {
return admin;
}
public void setAdmin(Admin admin) {
this.admin = admin;
}
@Override
public void initialize(URL location, ResourceBundle resources) {
System.out.println(admin);
}
}
Vielen Dank Zoltanik. Ich erstelle Load-Methode im Admin-Controller. Ich setze Admin und dann Lade aufrufen. Jetzt kann ich Benutzerinformationen in der zuerst gezeigten Komponentenszene zeigen. –