在fxml中显示整个链表

时间:2018-06-14 08:14:02

标签: java list javafx fxml

我正在创建一个LinkedList,其中包含最喜欢的某人电影。

我想在FXML中显示整个列表,但Label不支持多行输出。

这是我尝试的代码(filmFavoritenLinkedList):

static LinkedList<Film> filmFavoriten = new LinkedList<>();

@FXML
private void displayList() throws IOException {
    GridPane pane = FXMLLoader.load(getClass().getClassLoader().getResource("displayList.fxml"));
    rootpane.getChildren().setAll(pane);

    for (int r = 0; r < filmFavoriten.size(); r++) {
        Label listTable = new Label();
        listTable.setText((r + 1) + ". " + filmFavoriten.get(r).title);
    }
}

请建议。

1 个答案:

答案 0 :(得分:1)

您正在做正确的工作,但循环中新创建的Label将不会自动添加到GridPane

for (...) {
    ...
    pane.getChildren().add(listTable);
}
  

...但Label不支持多行输出

根据您的代码,每部电影都拥有一个没有任何换行符的标签。这些电影被打印成单独的Label s,因此不需要'\n'合并行。

我建议您使用ListView<Film>Vbox(请参阅下面的示例)。

VBox verticalBox = new VBox();

for (...) {
    ...
    verticalBox.getChildren().add(listTable);
}

pane.getChildren().add(verticalBox);