Heyyo,
Так что в настоящее время я работаю над проектом JavaFX, с другим проектом Java, обрабатывающим / обслуживающим данные для указанного проекта.
В то время как у меня все работает, явсе еще пытаюсь получить ProgressBar для загрузки при загрузке данных из проекта данных, что у меня возникают некоторые проблемы.
В настоящее время я перебираю данные, создавая / добавляя метки в GridPane для каждого«вход».Над этим я объявляю JavaFX ProgressBar и добавляю его в свою «корневую оболочку» VBox
.
GridPane wrapper = new GridPane();
ProgressBar progress = new ProgressBar();
viewBox.getChildren().add(progress);
int currentRow = 1;
for(Map.Entry<String, List<Observation>> item : handler.get(from, to).entrySet()) {
if(item != null) {
for(Observation inner : item.getValue()) {
if(inner != null) {
// Add the data for the datalist
wrapper.add(new Label(item.getKey()), 0, currentRow);
wrapper.add(new Label(inner.getDate().toString()), 1, currentRow);
wrapper.add(new Label(String.valueOf(inner.getValue())), 2, currentRow);
currentRow++;
}
}
}
}
viewBox.getChildren().add(wrapper);
Теперь, к вещам, которые я пытался достичь, так как я понимаю, что один только этот код мало что даст:
1) Попытка обернуть GridPane в Task
и создание нового потока из указанной задачи - не работало из-за попытки создания элементов JavaFX, пока он не находится в потоке приложений JavaFX
2) Пробовал обернуть все wrapper.add(new Label(...));
в Platform.runLater()
- какwrapper
не является окончательным и должен существовать как внутри, так и за пределами области действия, это тоже не сработало.
3) Попытка добавления ввода данных за записью во временную карту и показ прогресса, которыйспособ, позволяя ProgressBar-части запускаться в своей собственной задаче / потоке.Казалось, работает, пока я использовал Thread.join();
впоследствии, но кажется крайне неэффективным.
Как всегда, любая помощь приветствуется.Если я забыл упомянуть что-то, что необходимо для того, чтобы рассказать, что происходит, пожалуйста, дайте мне знать!Я пытался включить все, что имеет отношение.
Заранее спасибо!