Добрый день. У меня идёт прогрузка сцены. Т.к. добавляется много элементов на AnchorPane, решил сделать добавление в отдельном потоке, чтобы на лету добавлялись... Пробовал Platform.runLater(). Всё работало, но хотел быстрее, и был ещё один минус, но это неважно. Гуглил и прочитал про Task. Сделал с Task. В итоге сейчас у меня элементы, а точнее кнопки, добавленные в Task'е, просто не отображаются, точнее отображаются, но максимум 1, иногда 2. Упрощённый код такой
public class Loader(){
private AnchorPane anchorPane;
loadComponents(){
ObservableList<Node> children=anchorPane.getChildren();
Task task=new Task(){
@Override
protected Void call()throws Exception{
for(int i=0;i<75;i++){
Button button=new Button()
button.setPrefSize(100,100);
children.add(button);
}
return null;
};
Thread t = new Thread(task);
t.start;
}
}
}
Ну в общем делать надо так
public class Loader(){
private AnchorPane anchorPane;
loadComponents(){
ObservableList<Node> children=anchorPane.getChildren();
Task task=new Task(){
@Override
protected Void call()throws Exception{
for(int i=0;i<75;i++){
Button button=new Button()
button.setPrefSize(100,100);
Platform.runLater(new Runnable () {
public void run() {
children.add(button);
}
});
}
return null;
};
Thread t = new Thread(task);
t.start;
}
}
Как развивать веб-проекты в 2026 году: технологии, контент E-E-A-T и факторы доверия
Современные инструменты для криптотрейдинга: как технологии помогают принимать решения
Апостиль в Лос-Анджелесе без лишних нервов и бумажной волокиты
Основные этапы разработки сайта для стоматологической клиники