JavaFX Создание прокручиваемого списка пользовательских компонентов - PullRequest
0 голосов
/ 03 июня 2019

Я работаю над проектом. В этом проекте у меня должен быть магазин с огромным списком карточек. Я также очень новичок в 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;
    }
}

Card.fxml

Общий вид Card.fxml: enter image description here

На самом деле я хочу иметь огромный список этой карты, который можно прокручивать. Как мне это сделать? Какие компоненты я должен использовать. Я также должен отметить, что у меня есть доступ к JFoenix.

1 Ответ

1 голос
/ 04 июня 2019

Используйте просмотр списка.Это виртуальный элемент управления, поэтому он создает только узлы, которые находятся в визуальных границах.

Вы можете применить css, чтобы сделать фон прозрачным.

...