Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/328.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 GridPane列/行跨度与索引_Java_Javafx_Row_Col_Gridpane - Fatal编程技术网

JavaFX GridPane列/行跨度与索引

JavaFX GridPane列/行跨度与索引,java,javafx,row,col,gridpane,Java,Javafx,Row,Col,Gridpane,我正在通过Oracle教程学习JavaFX,我对这个特定的主题感到困惑。我似乎是唯一一个困惑的人,因为我的搜索没有得到任何有用的结果。我正在创建一个包含2列(0,1)和3行(0,1,2)的基本网格窗格。第一行是标题,另外两行左边是标签,右边是文本框,这是一个登录屏幕 登录 用户名|[___;] 密码 以下是填充网格的代码: Text scenetitle = new Text("Login"); scenetitle.setFont(Font.font("Tahoma", Fon

我正在通过Oracle教程学习JavaFX,我对这个特定的主题感到困惑。我似乎是唯一一个困惑的人,因为我的搜索没有得到任何有用的结果。我正在创建一个包含2列(0,1)和3行(0,1,2)的基本网格窗格。第一行是标题,另外两行左边是标签,右边是文本框,这是一个登录屏幕

登录
用户名|[___;]
密码

以下是填充网格的代码:

    Text scenetitle = new Text("Login");
    scenetitle.setFont(Font.font("Tahoma", FontWeight.NORMAL, 20));
    grid.add(scenetitle,0,0,2,1); // Row span here is set to 1

    Label userName = new Label("User Name");
    grid.add(userName,0,1);

    TextField userTField = new TextField();
    grid.add(userTField,1,1);

    Label passName = new Label("Password");
    grid.add(passName,0,2); // Here I'm referencing a row index of 2

    TextField passTField = new TextField();
    grid.add(passTField,1,2)

代码工作得非常完美,因为它基本上只是教程中的复制粘贴。然而,我的困惑来自这样一个事实:我的行跨度为1,但我引用的行索引为2。我试着切换行和列的跨度,但这把事情搞砸了,所以我确信这是正确的。我缺少什么?

它是不同的。首先,它有助于:

      setGridLinesVisible(true);
因此,您可以看到网格布局的情况(列和行之间的空间、元素的宽度和高度等)。 关于
从文档中添加
方法:

add(Node child,int columnIndex,int rowIndex,int colspan,int rowspan)
在第一行:

您添加元素
scenetitle
,它将定位在0和0它可以跨越2个列和1个

在终点线:

您添加元素
passName
,它将被定位在0和2上,您没有给出关于它如何跨越的值

特殊情况


GridPane
中,例如,如果您在0和0上有一个项目,并且行跨度4,那么在第二行中,一个没有默认跨度的项目将跨越最大跨度(在本例中为4)。

哦,我明白了。因此,基本上,colspan类似于网格元素的“宽度”,rowspan类似于“高度”?@AlexanderJ93如果将列span设置为2,GridPane有2列,则该项将更大,以捕获这两列。请举一个我给出的关于特殊情况的示例。还可以尝试使用GridPane,启用(setGridLinesVisible(true))它非常有用,您将深入了解。
       grid.add(scenetitle,0,0,2,1);
      grid.add(passName,0,2);