Почему диалоговое окно (Предупреждение) в javafx отображается неправильно, если владелец сведен к минимуму.Javafx Dialog (Alert) не отображается, если владелец сведен к минимуму
взгляд на следующий код:
public class JavaFxSample2 extends Application {
@Override
public void start(Stage primaryStage) throws InterruptedException, ExecutionException {
primaryStage.setTitle("open alert in 2 seconds");
Pane pane = new Pane();
Button b = new Button("open dialog");
b.setOnMouseClicked(event -> {
Task<Void> task = new Task<Void>() {
@Override
protected Void call() throws Exception {
Thread.sleep(2000);
return null;
}
};
task.stateProperty().addListener((observable, oldValue, newValue) -> {
if (newValue == State.SUCCEEDED) {
Alert alert = new Alert(AlertType.INFORMATION, "Hello");
alert.initOwner(primaryStage);
alert.showAndWait();
}
});
Thread thread = new Thread(task);
thread.start();
});
pane.getChildren().add(b);
Scene scene = new Scene(pane, 300, 275);
primaryStage.setScene(scene);
primaryStage.show();
}
public static void main(String[] args) {
launch(args);
}
}
Если свернуть приложение в 2-х секунд, а затем увеличить его снова (после 2-х секунд) вы не увидите диалоговое окно, но там как-то (этап заблокирован, пока вы не нажмете esc или не введите)
Если вы не скроете сцену, диалог будет показан правильно.
это ошибка? я делаю это неправильно?
Edit: Система Windows 7, Java 1.8.0.66
Edit2: Ok. кажется, что это действительно ошибка: https://bugs.openjdk.java.net/browse/JDK-8151170
Да, мне не нужно нажимать esc или вводить сейчас. Но Диалог также не отображается. Поэтому ответ неправильный – griFlo