stage.setIconify (true) не работает с неокрашенной сценой - PullRequest
1 голос
/ 27 марта 2019

У меня неокрашенный этап FXML. Я создал кнопку для минимизации окна и создал для нее событие в классе Controller в методе initialize.

minimizeBtn.setOnAction(e -> {


            Stage stage = (Stage)((Button)e.getSource()).getScene().getWindow();
            stage.setIconified(true);
            System.out.println(stage.isIconified());
        });

Проблема:

isIconified() возвращает true, пока визуально ничего не происходит с окном.

Если я переключаюсь с UNDECORATED на default, моя пользовательская кнопка отлично работает.

1 Ответ

0 голосов
/ 22 июля 2019

Одна и та же проблема для меня как в MacOS High Sierra, так и в Mojave, с jdk 11.0.2 и JavaFX 12.0.1. Есть пример кода для воспроизведения проблемы.Обратите внимание, что без установки стиля UNDECORATED на сцену проблема не произойдет.В Windows поведение корректно независимо от стиля сцены.

public class DemoApplication extends Application {

  @Override
  public void start(Stage primaryStage) {
      Button minimize = new Button("MINIMIZE");
      minimize.setOnAction(event -> primaryStage.setIconified(true));
      primaryStage.initStyle(StageStyle.UNDECORATED);

      Scene scene = new Scene(new StackPane(minimize));
      primaryStage.setTitle("JavaFX App");
      primaryStage.setWidth(960);
      primaryStage.setHeight(600);
      primaryStage.setScene(scene);
      primaryStage.show();
  }

  public static void main(String[] args) {
      launch(args);
  }

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