JavaFX GridPane列/行跨度与索引
我正在通过Oracle教程学习JavaFX,我对这个特定的主题感到困惑。我似乎是唯一一个困惑的人,因为我的搜索没有得到任何有用的结果。我正在创建一个包含2列(0,1)和3行(0,1,2)的基本网格窗格。第一行是标题,另外两行左边是标签,右边是文本框,这是一个登录屏幕 登录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
用户名|[___;]
密码 以下是填充网格的代码:
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);