java - 在显示时修改 javafx 标签属性
问题描述
我动态地将标签添加到一个空的 HBox以表示使用链接到按钮displayBox
的宽度为 60.0 和随机高度的垂直条。genNewArray()
这些条形图由MakeBar
类传递并存储在静态数组MakeBar[] valueArray;
中。为了稍后按高度对这些条进行排序,我首先运行了一个测试,使用startVisual()
linked to使所有高度相同vizButton
。
问题是只有在整个循环完成后才会显示更改。我需要在循环运行时显示修改,即当它发生变化时。
控制器类:
public class SortContr implements Initializable {
static MakeBar[] valueArray;
private static Random random = new Random();
@FXML
private Label newRandArray;
@FXML
private Slider barNumSlider;
@FXML
private Button vizButton;
@FXML
private HBox displayBox;
@FXML
void genNewArray(MouseEvent event) {
displayBox.getChildren().clear();
int arrsize = (int) barNumSlider.getValue();
valueArray = new MakeBar[arrsize];
for (int i=0;i<arrsize;i++) {
valueArray[i] = new MakeBar(random.nextInt(500));
displayBox.getChildren().add(valueArray[i].getBar());
}
vizButton.setDisable(false);
}
@FXML
void startVisual(ActionEvent event) throws InterruptedException {
/*for (Node n:displayBox.getChildren()) {
((Label) n).setPrefHeight(60);
n.setStyle("-fx-background-color: #8bff3a;");
Thread.sleep(3000);
}*/
for (int i=0;i<valueArray.length;i++) {
valueArray[i].modifyHeight(100);
//System.out.println(i);
Thread.sleep(1000);
}
vizButton.setDisable(true);
}
}
制作吧:
public class MakeBar {
@FXML
private Label bar;
MakeBar(int ht) {
this.bar = new Label();
this.bar.setPrefWidth(60.0);
this.bar.setStyle("-fx-background-color: #5dade2;");
this.bar.setPrefHeight(ht);
}
Label getBar() {
return bar;
}
void modifyHeight(double newHeight) {
this.bar.setPrefHeight(newHeight);
}
}
我需要它来一次显示每个条形图。
我知道我可以在每次迭代后清除并加载小部件,但这似乎效率低下。主要问题在于startVisual()
。我不太精通JavaFx。
我使用 IntellijIdea 和 SceneBuilder。
解决方案
推荐阅读
- kubernetes - Kubectl : 没有找到资源,即使在命名空间中运行 pod 也很难
- android - android如何在YoutubeBaseActivity上添加带有片段的viewpager?
- mysql - TypeError:无法访问字符串上类型字符串的偏移量
- c# - 新部署的 Azure Web 应用返回 404 错误代码
- flutter - 如何在 showModalBottomSheet 中获取正确的上下文?
- google-cloud-firestore - Firebase Firestore 安全规则“request.auth.ui”不等于“KullaniciId”
- sql-server - SQL Server Express 无法设置登录密码
- sql - 如何在 SQL 脚本中传递令牌?
- javascript - 在反应中提交带有formData的PDF文件
- asynchronous - 如何将 rust async_trait 泛型用于生命周期参数?