当前位置: 首页 > 知识库问答 >
问题:

javafx中的可滚动网格窗格

阴培
2023-03-14

我试图将乘法VBox添加到scrollpane中的gridpane(在下面的codesnippet中称为refPane)。

    int columnIndex = 0;
    int rowIndex = 0;
    int boxWidth = windowWidth/ITEMS_PER_ROW;
    int boxHeight = windowHeight/ITEMS_PER_COLUMN;

    for(int i=0; i<items.size(); i++){
        VBox vBox = new VBox();
        vBox.setPrefWidth(boxWidth);
        vBox.setPrefHeight(boxHeight);

        Label label1 = new Label();
        label1.setText("ImgPlaceholder");
        label1.setPrefWidth(boxWidth);
        label1.setPrefHeight(boxHeight / 100 * 70);
        vBox.getChildren().add(label1);

        Label label2 = new Label();
        label2.setText("Description");
        label2.setPrefWidth(boxWidth);
        label2.setPrefHeight(boxHeight / 100 * 30);
        label2.setPadding(new Insets(0,0,0, 10));
        vBox.getChildren().add(label2);

        refPane.add(vBox, columnIndex, rowIndex);

        if(columnIndex != 0 && columnIndex % GAMES_PER_ROW == 0){
            rowIndex++;
            columnIndex = 0;
        }else {
            columnIndex++;
        }

它在一行中添加不超过ITEMS_PER_ROW的Vbox,并在下一行中继续。也不应该有更多的行,然后ITEMS_PER_COLUM可见。问题是,如果我添加更多的ITEMS_PER_ROW*ITEMS_PER_COLUMN到网格中,而不是obingbeingscrollable,vbox只会变得更小。

有什么想法吗?提前感谢。

共有1个答案

左丘嘉木
2023-03-14

javafx很可能优先考虑缩小VBox而不是扩展网格窗格。尝试将每个VBox的minHeight设置为与其prefHeight相等,以防止它们垂直收缩。

 类似资料:
  • 问题我如何可以嵌入这个应用程序到SPlitPane,在左边将是另一个面板。 不幸的是,代码导致了错误的坐标,

  • 问题内容: 当内容的高度增加时,有什么方法可以自动向下滚动ScrollPane控件?例如,我在屏幕底部(在ScrollPane内部)有一个TitledPane,当我展开它时,我希望ScrollPane向下滚动,以便可以看到TitledPane的全部内容。 问题答案: 您可以结合使用和和来实现该行为 第一个是获取titlePane的坐标,第二个是设置scrollPane的垂直栏位置。请注意,它的范围

  • 基于此注释https://stackoverflow.com/a/29530135/1387524,我添加了一个ScrollPane,以便在画布移到可见区域之外时使用滚动。

  • 我一直在尝试制作一个包含可以选择和配置的字符串的滚动窗格。我一直在研究如何在滚动窗格中实现JList,但没有一种方法有效,这是因为指南一直在使用swing滚动窗格(

  • 我有一些关于滚动窗格的默认背景和边框的问题。使用这种风格使问题看得更清楚。 我试过这种风格,但没有运气,只有红色的边框消失了,留给我的是蓝色的。 我查看了这个旧的后JavaFX隐藏滚动窗格灰色边框和http://docs.oracle.com/JavaFX/2/ui_controls/editor.htm 这行代码也不起作用 谢谢

  • 在我的项目中,我有一个包含多个值的ComboBox。当我的应用程序开始时,我执行以下操作: 其中是字符串列表。 同时,在应用程序中,可以更改此值。但是,由于我已经将此组合框添加到我的GridPane中,然后在该值更改(gui.columns)时添加到场景中,因此新值没有显示在组合框中。因为我已经添加了旧的gui.course。有没有办法用新的gui.course_P更新createTestButt