Я хочу изменить сцены на своей сцене или закрыть сцену, когда я нажимаю кнопку запуска игры и кнопку выхода из игры, но она просто показывает мне первую сцену, и когда я пытаюсь нажать одну из этих кнопок, компилятор закрывает в случае исключения NullPointerException.
У меня также есть основной класс и два fxml-файла, но я думаю, что нет необходимости помещать его здесь, он содержит только две панели привязки, примитивные метки и кнопки.
package sample;
import javafx.event.ActionEvent;
import javafx.fxml.FXML;
import javafx.fxml.FXMLLoader;
import javafx.fxml.Initializable;
import javafx.scene.Scene;
import javafx.scene.control.Button;
import javafx.scene.layout.AnchorPane;
import javafx.stage.Stage;
import java.io.IOException;
import java.net.URL;
import java.util.ResourceBundle;
public class Controller implements Initializable{
private Stage stage = new Stage();
private FXMLLoader loader = new FXMLLoader();
private AnchorPane anchorPane = new AnchorPane();
private Scene scene = new Scene(new AnchorPane());
@FXML private Button startGameButton;
@FXML private Button endGameButton;
@FXML private Button buttonAnswer1;
@FXML private Button buttonAnswer2;
@FXML private Button buttonAnswer3;
@FXML private Button buttonAnswer4;
public void createScene(int typeOfScene) throws Exception
{
if (typeOfScene == 1)
{
loader = new FXMLLoader(getClass().getResource("/sample/sample.fxml"));
anchorPane = loader.load();
scene = new Scene(anchorPane);
stage.setScene(scene);
stage.show();
}
if (typeOfScene == 2)
{
scene = null;
loader = new FXMLLoader(getClass().getResource("/sample/episodesFXML.fxml"));
anchorPane = loader.load();
scene = new Scene(anchorPane);
stage.setScene(scene);
stage.show();
}
}
public void getPrimaryStage(Stage stage) throws Exception
{
this.stage = stage;
createScene(1);
}
@Override
public void initialize(URL location, ResourceBundle resources) {
startGameButton.setOnAction(event -> {
try {
createScene(2);
} catch (Exception e)
{
e.printStackTrace();
}
});
endGameButton.setOnAction(event -> {
stage.close();
});
}
}
null
... Что говорит трассировка стека? - person fabian   schedule 26.03.2016createScenes(2)
, мой компилятор злится на строкуanchorPane = loader.load();
, и когда я нажимаю кнопку завершения игры, ничего не происходит, но он должен закрыть мою сцену. - person Tony Chuss   schedule 26.03.2016