Исключение в потоке «Поток приложения JavaFX» - PullRequest
0 голосов
/ 30 мая 2019

У меня небольшая проблема с JavaFX.Я бы хотел, чтобы эти сцены были неокрашенными, но я получаю такое сообщение.Я знаю, что происходит, но я не знаю, как это решить.У вас есть идея, чтобы решить эту проблему?

Спасибо

Ошибка

Exception in thread "JavaFX Application Thread" java.lang.IllegalStateException: Cannot set style once stage has been set visible
    at javafx.stage.Stage.initStyle(Stage.java:493)
    at DialogsBoxes.exitConfirmation(DialogsBoxes.java:43)
    at LaunchApplication.lambda$start$0(LaunchApplication.java:38)

DialogBoxes.java

Когда я закомментирую этот кусок кодаexitStage.initStyle (StageStyle.UNDECORATED);все в порядке, но я бы хотел, чтобы закрывающее окно не было украшено.

    @FXML
    private AnchorPane exitAnchorPane;

    @FXML
    private Button confirmExit;

    @FXML
    private Button confirmReturn;

    @FXML
    void exitConfirmation(MouseEvent event) {
        exitApplication();
    }

    @FXML
    void returnConfirmation(MouseEvent event) {
        returnToApplication();
    }

        public static Stage exitStage = new Stage();


        @FXML
        public static void exitConfirmation() throws IOException{
            Parent exitRoot = new FXMLLoader().load(DialogsBoxes.class.getResource("ExitBox.fxml"));
            Scene exitScene = new Scene(exitRoot);

            exitStage.initStyle(StageStyle.UNDECORATED);
            //exitStage.initModality(Modality.WINDOW_MODAL);
            //exitStage.initOwner(stage);
            exitStage.setScene(exitScene);

            exitStage.show();
        }

        public void exitApplication(){
            Platform.exit();
            //System.exit(0);
        }

        public void returnToApplication(){
            exitStage.close();
        }

}

LaunchApplication.java (Main Controller)

public static Stage stage = null;

@Override
public void start(Stage stage) throws IOException {

    Parent root = FXMLLoader.load(getClass().getResource("LoginUI.fxml"));

    Scene scene = new Scene(root);

    stage.initStyle(StageStyle.UNDECORATED);

    stage.setScene(scene);

    this.stage = stage;

    stage.show();

    KeyCombination combination = new KeyCodeCombination(KeyCode.ESCAPE, KeyCodeCombination.SHIFT_ANY);
    scene.setOnKeyPressed(event -> {
        if(combination.match(event)){
            try {
                DialogsBoxes.exitConfirmation();
            } catch (IOException e) {
                e.printStackTrace();
            }
        }
    });

}


public static void main(String[] args){

    launch(args);
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...