向 HBox 添加一个 ObservableList?

Adding an ObservableList to HBox?

我有一组 JavaFX 标签要添加到 HBox 中。但是我知道 HBox.add 方法不接受集合类型。因此,我改为通过循环添加它。不幸的是,一次只执行一个标签,并没有显示所有标签。有什么想法吗?

 for(int m=0;m<test.length;m++)
        {
            HBox hb = new HBox();

            System.out.println("Test.length's size : " + test.length);
            System.out.println("TeacherLabels's count : " + teacherlabels.size());
            hb.getChildren().addAll(teacherlabels.get(m),eachlecturertotstudents.get(m),subincome.get(m),teacherpayments.get(m));
            hb.setSpacing(10);
            VBox vb = new VBox();
            vb.getChildren().addAll(tuitionreport,totStudents,totalFees);
            vb.setSpacing(10);
            VBox vbez = new VBox();
            vbez.getChildren().addAll(vb,instructors,hboxtitle,hb,linez,allpaymenta,tuitionincomea);
            this.setScene(new Scene(vbez, 2000, 2000));
            this.show();
        }

尽管 test.length 大于 1,但仅添加了 Cikgu Suraya 行标签。

输出:

Test.length的尺寸输出:

运行了两次,但只显示一行标签。

您的 for 循环范围错误,当您更新场景并将其显示在循环内时,这会导致仅显示循环中最后一次迭代的内容。由于很难猜测您对输出的意图是什么,请执行以下操作:

VBox vb = new VBox();
vb.getChildren().addAll(tuitionreport,totStudents,totalFees);
vb.setSpacing(10);

VBox vbez = new VBox();
vbez.getChildren().addAll(vb,instructors,hboxtitle);

for(int m=0;m<test.length;m++) {
  HBox hb = new HBox();

  System.out.println("Test.length's size : " + test.length);
  System.out.println("TeacherLabels's count : " + teacherlabels.size());
  hb.getChildren().addAll(teacherlabels.get(m),eachlecturertotstudents.get(m),subincome.get(m),teacherpayments.get(m));
  hb.setSpacing(10);


  vbez.getChildren().add(hb);

}

vbez.getChildren().addAll(linez,allpaymenta,tuitionincomea);
this.setScene(new Scene(vbez, 2000, 2000));
this.show();

本质上,每次迭代只在VBox上加一个HBox