在JavaFX中更改场景

时间:2018-05-01 13:44:36

标签: java exception javafx

我的问题在于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);
}

0 个答案:

没有答案