我的问题在于JavaFX。
我已经创建了登录面板(第一个场景),当有人输入正确的登录名和密码并点击按钮时 - >场景应该改为另一个。
所有内容都可以正常编译,但单击按钮时会抛出异常。 (这是关于调用或某事的东西)但最终有类似的东西:
Caused by: java.lang.NullPointerException
at Login.LoginController.Login(LoginController.java:50)
所以问题出在我的Controller中,方法是Login,这里是:
@FXML
public void Login(MouseEvent event) throws SQLException, IOException {
DatabaseConnection polaczenie = new DatabaseConnection();
polaczenie.selectDataFromDB("select * from logowanie");
if(tfLogin.getText().equals(polaczenie.getLogin()) && pfPassword.getText().equals(polaczenie.getPassword())) {
lblStatus.setText("Udalo sie zalogowac.");
Parent window1;
window1 = FXMLLoader.load(getClass().getResource("/Menu/Menu.fxml"));
Scene newSceneWindow1 = new Scene(window1);
Stage mainStage;
//mainStage = (Stage) ((Node)event.getSource()).getScene().getWindow();
mainStage = Main.getPrimaryStage();
mainStage.setScene(newSceneWindow1);
mainStage.show();
}
else {
lblStatus.setText("Logowanie nie powiodlo sie.");
}
有两行问题:
mainStage.setScene(newSceneWindow1);
mainStage.show();
当我删除这两个时,一切都正常编译但是它没有改变场景。
我不知道如何修复它,我检查了几乎所有东西。
PS
我的主要:
private static Stage primaryStage;
private void setPrimaryStage(Stage stage) {
Main.primaryStage = stage;
}
static public Stage getPrimaryStage() {
return Main.primaryStage;
}
@Override
public void start(Stage primaryStage) throws Exception{
FXMLLoader firstPaneLoader = new FXMLLoader(getClass().getResource("LoginPanel.fxml"));
Parent firstPane = firstPaneLoader.load();
Scene firstScene = new Scene(firstPane);
primaryStage.getIcons().add(new Image("file:C:///Users/Bartek/Desktop/HarcerzSystem-master/test.png"));
primaryStage.setTitle("Harcerz System");
primaryStage.setScene(firstScene);
primaryStage.show();
}
public static void main(String[] args) {
launch(args);
}