【问题标题】:JavaFX Making an scrollable list of custom componentsJavaFX 制作自定义组件的可滚动列表
【发布时间】:2019-10-19 04:35:28
【问题描述】:

我正在做一个项目。在这个项目中,我必须有一家拥有大量卡片的商店。我对 JavaFX 也很陌生。

我创建了一个继承窗格的自定义类。它有一个图像视图和一些标签来显示卡片的名称和描述。

知道我的问题是我应该如何将它们添加到场景中以获得这些项目的可滚动列表?我的场景应该有哪些组件。 (我在下面的代码中省略了导入)

CardView.java ---- 加载 fxml 的自定义组件

public class CardView extends Pane {
    CardController cardController;
    Node view;

    public CardView() {

        FXMLLoader fxmlLoader = new FXMLLoader(getClass().getResource("../FXMLFiles/Card.fxml"));
        fxmlLoader.setControllerFactory(new Callback<Class<?>, Object>() {
            @Override
            public Object call(Class<?> param) {
                return cardController = new CardController();
            }
        });
        try {
            view = (Node) fxmlLoader.load();

        } catch (IOException ex) {
        }
        getChildren().add(view);
        cardController.setNameAndDsc("Card", "This is A card", heroImg);
    }

}

CardController.java

public class CardController {
    @FXML
    private Label name_lbl;

    @FXML
    private Label dsc_lbl;

    @FXML
    private ImageView card_img;


    public void setNameAndDsc(String name, String dsc, Image img) {
        name_lbl.setText(name);
        dsc_lbl.setText(dsc);
        card_img.setImage(img);
    }

    public void setName_lbl(Label name_lbl) {
        this.name_lbl = name_lbl;
    }

    public void setDsc_lbl(Label dsc_lbl) {
        this.dsc_lbl = dsc_lbl;
    }

    public void setCard_img(ImageView card_img) {
        this.card_img = card_img;
    }
}

卡片.fxml

Card.fxml 的整体视图:

其实我想要一张可以滚动的卡片列表。我该怎么做?我应该使用哪些组件。我还必须注意,我可以访问 JFoenix。

【问题讨论】:

标签: java javafx jfoenix


【解决方案1】:

使用列表视图。它是一个虚拟控件,因此它只创建视觉范围内的节点。

您可以应用 css 使背景透明。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-08-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-01-09
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多