java - javafx中运行程序时如何在布局中添加或删除节点
问题描述
我在 javafx 中编写了一个代码,它基于一个字符串构建一个布局,在我按下一个特定的按钮后,它会读取另一个字符串并构建一个完全不同的布局。这是代码:
Service<Void> cicle = new Service<Void>() {
@Override
protected Task<Void> createTask() {
return new Task<Void>() {
@Override
protected Void call() throws Exception {
String[] map = { "10", "10", "logo" };
boolean waiting = false;
Timer.start();
while (Timer.update() / 1000 < time) {
if (!waiting) {
for (int i = 0; i < map.length; i += 3) {
Label gigi = new Label("hi");
gigi.setLayoutX(Integer.parseInt(map[i]));
gigi.setLayoutX(Integer.parseInt(map[i + 1]));
// HERE is where i shoul add the label gigi
}
waiting = true;
}
System.out.println(Timer.update());
}
end();
return null;
}
};
}
};
但是如果我使用 layout.getChildrens().add(node) 它不起作用,如果我完全重建舞台的场景它会停止程序
解决方案
刚刚使用 Platform.runLater 并且它可以工作
推荐阅读
- docker - 使用裸机服务器开始使用 docker swarm
- javascript - 加载时的路由在我的 React 本机应用程序上不起作用
- go - 如何制作一个接收自定义接口数组的函数
- dsl - Xtext 语法错误“cannot find type for [State]”即使有这样的类型也会抛出
- c++ - 如何在 C++ 中计算字符串的有限字符?
- php - 如何在php中的文本中放置超链接
- netlogo - Netlogo,将链接更改为链接到
- scala - 我将如何在 Scala 中编写 Vector 类?
- java - 删除对象时的微服务通信
- sas - 在SAS中通过多行分组设置记录的状态