Я использую:
- OpenJDK 19
- OpenJFX 16
- Hyper-V
- ВМ: Windows 10 li>
Код: Выделить всё
import javafx.application.Application;
import javafx.scene.Scene;
import javafx.scene.control.Label;
import javafx.scene.control.TextField;
import javafx.scene.layout.BorderPane;
import javafx.stage.Stage;
public class ArchivApp extends Application {
@Override
public void start(Stage primaryStage) throws Exception {
buildAndOpenStage(primaryStage);
}
private void buildAndOpenStage(Stage stage) {
stage.setResizable(true);
BorderPane bp = new BorderPane();
TextField tf = new TextField("NewStage");
stage.titleProperty().bind(tf.textProperty());
bp.setCenter(tf);
stage.setScene(new Scene(bp, 500, 500));
tf.textProperty().addListener(ev -> {
if (tf.textProperty().isEmpty().get()) {
BorderPane borderPane = new BorderPane(new Label("New Scene in old stage"));
stage.setScene(new Scene(borderPane, 200, 200));
stage.hide();
stage.show();
buildAndOpenStage(new Stage());
}
});
stage.show();
}
}
Когда я запускаю приложение, все работает нормально. Но если я оставлю приложение открытым, отключусь от виртуальной машины, снова подключусь к нему и буду взаимодействовать с ним, графический интерфейс больше не будет обновляться.
Я прикрепил гифку, которая показывает странное поведение :

Создание нового этапа также не исправляет поведение (метка должна отображаться, но ничего не отображается):

Вещи, которые мне показались эффективными:
Использование OpenJFX 21 вместо 16
или
Добавление "-Dprism.order=sw" в качестве аргумента JVM
Это известная ошибка или я что-то упускаю?
Подробнее здесь: https://stackoverflow.com/questions/783 ... -reconnect