У меня есть небольшая программа, которая вызывается другой программой, загружает / переименовывает некоторые файлы и впоследствии закрывается. Я хочу показать пользователю прогресс с помощью простого текста. Моя проблема в том, что логика кода запускается до того, как представление полностью отображается. Окно видно, но его содержимое (в данном случае образец текста) не отображается.
Я уже пробовал setOnShown () (как видно из моего примера) или setOnShowning (). Я также попытался не использовать файл fxml для макета. Но, похоже, ничего не работает.
public void start(Stage primaryStage) throws Exception {
HBox root = new HBox();
Text t = new Text();
t.setText("sample Text");
root.getChildren().add(t);
Scene scene = new Scene(root, 300, 275);
primaryStage.setTitle("FXML Welcome");
primaryStage.setScene(scene);
primaryStage.setOnShown(e -> {
updaterLogic(); //do some work
});
primaryStage.show();
}
public static void main(String[] args) {
launch(args);
}
public void updaterLogic(){
try {
Thread.sleep(10 * 1000);
} catch (Exception e) {
e.printStackTrace();
}
}
Я хочу, чтобы представление было завершено до запуска фактической логики. Как мне это заархивировать?