Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/383.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javafx网格窗格..无法动态添加行..而不进行收缩_Java_Javafx_Dynamic_Fxml_Gridpanel - Fatal编程技术网

Javafx网格窗格..无法动态添加行..而不进行收缩

Javafx网格窗格..无法动态添加行..而不进行收缩,java,javafx,dynamic,fxml,gridpanel,Java,Javafx,Dynamic,Fxml,Gridpanel,我想在不收缩的情况下将ui节点动态添加到gridapanes行中。与其收缩gridpane,不如启用滚动功能(grid pane位于滚动窗格中)…但两者都没有实现 iam试图创建一个事件日历,能够将整个月的事件视为顶行的天数(至少30个科隆) --->控制器类 包装样品 import javafx.fxml.Initializable; import javafx.geometry.Pos; import javafx.scene.control.Label; import javafx.sce

我想在不收缩的情况下将ui节点动态添加到gridapanes行中。与其收缩gridpane,不如启用滚动功能(grid pane位于滚动窗格中)…但两者都没有实现

iam试图创建一个事件日历,能够将整个月的事件视为顶行的天数(至少30个科隆)

--->控制器类 包装样品

import javafx.fxml.Initializable;
import javafx.geometry.Pos;
import javafx.scene.control.Label;
import javafx.scene.layout.GridPane;
import javafx.scene.layout.VBox;


import java.net.URL;
import java.util.ResourceBundle;

public class Controller implements Initializable {
    public GridPane gridPane;

    @Override
    public void initialize(URL location, ResourceBundle resources) {
        for (int i = 0; i <= 20; i++) {
            VBox box = new VBox();
            Label label = new Label(Integer.toString(i));
            label.setMinHeight(50);
            label.prefHeight(50);
            label.setMaxHeight(50);
            gridPane.setGridLinesVisible(true);
            label.setStyle("-fx-background-color:yellow;");
            box.getChildren().add(label);
            box.setAlignment(Pos.CENTER);
            gridPane.add(box, 0, i);
        }

        Label labe2 = new Label("HelloWorld");
        labe2.setMinHeight(80);
        gridPane.add(labe2, 0, 15);
    }
}
import javafx.fxml.Initializable;
导入javafx.geometry.Pos;
导入javafx.scene.control.Label;
导入javafx.scene.layout.GridPane;
导入javafx.scene.layout.VBox;
导入java.net.URL;
导入java.util.ResourceBundle;
公共类控制器实现可初始化{
公共网格窗格;
@凌驾
公共void初始化(URL位置、ResourceBundle资源){
对于(int i=0;i

您的
网格窗格
行的
最小高度
10.0
。这意味着在使用
滚动窗格
之前,它们将始终缩小到该大小

将每行的
minHeight
更改为
-Infinity
,这基本上使其与您的
prefHeight
匹配:

<RowConstraints minHeight="-Infinity" prefHeight="30.0" vgrow="SOMETIMES" />

解决了此问题..而不是在场景生成器中创建网格平移..只需使用代码创建网格并通过代码设置约束..尝试在代码执行顺序中尽早创建约束


使用scene builder创建的网格窗格对我不起作用

我在猜测,您可能需要使用其他
节点
列表视图
,我在猜测。我应该使用列表视图做什么?请您解释一下..我只是在猜测。研究不同的
节点
并确定哪个节点更适合您的情况。从好的,你的图片,我猜是
ListView
TableView
@Sedrick。我应该替换哪个节点…网格单元格中的VBox???你能更具体一点吗…这样我就可以计算出来…谢谢你的帮助…没有帮助…程序在更改FXML属性后甚至不会运行提高最小高度不会解决问题在完成我建议的更改后,nning您的精确代码在此处正确运行。所有行保持完全相同的高度,场景生成器可以打开文件。您确定没有意外地更改其他内容吗?除了您建议的更改之外,没有做任何更改。我将再次尝试。谢谢
<RowConstraints minHeight="-Infinity" prefHeight="30.0" vgrow="SOMETIMES" />
gridPane.getRowConstraints().add(new RowConstraints(30));