如何将标签数组或其他类型加载到fxml场景中?

问题描述 投票:0回答:1
java javafx fxml
1个回答
0
投票

该错误是由于您尝试直接引用 FXML 文件中的

List
导致的。

但是,您无法直接引用 FXML 中

List
这样的泛型类型,并且 JavaFX FXML 不支持通过 FXML 直接实例化非 JavaFX 类。

要实现您想要的效果,您可以使用

fx:id
属性来引用
VBox
等容器,然后以编程方式将
Label
元素添加到控制器中,如下所示:

列表.fxml:

<VBox xmlns="http://javafx.com/javafx" xmlns:fx="http://javafx.com/fxml" fx:controller="list.ListController">
    <VBox fx:id="labelContainer">
        <!-- You can leave this section empty -->
    </VBox>
</VBox>

ListController.java:

package list;

import java.net.URL;
import java.util.ResourceBundle;
import javafx.fxml.FXML;
import javafx.fxml.Initializable;
import javafx.scene.control.Label;
import javafx.scene.layout.VBox;

public class ListController implements Initializable {
    
    @FXML
    private VBox labelContainer;

    @Override
    public void initialize(URL url, ResourceBundle rb) {
        // Create Label instances
        Label label1 = new Label("Test");
        Label label2 = new Label("Test2");

        // Add labels to the VBox container
        labelContainer.getChildren().addAll(label1, label2);
    }
}
© www.soinside.com 2019 - 2024. All rights reserved.