Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/user-interface/2.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
JavaFXGridPane对象对齐_Java_User Interface_Javafx_Graphics_Gridpane - Fatal编程技术网

JavaFXGridPane对象对齐

JavaFXGridPane对象对齐,java,user-interface,javafx,graphics,gridpane,Java,User Interface,Javafx,Graphics,Gridpane,我试图使用JavaFX创建一个场景,其中程序标题位于顶部中心,按钮位于场景左侧的垂直线上。但是,这两个元素都聚集显示在场景的右上角,而不是我希望它们位于的位置 如何使这些元素显示在我希望它们显示的位置 下面是我如何设置节目标题的位置: grid.add(gameTitle, 0, 0); GridPane.setHalignment(gameTitle, HPos.CENTER); GridPane.setValignment(gameTitle, VPos.TOP); 我尝试以类

我试图使用JavaFX创建一个场景,其中程序标题位于顶部中心,按钮位于场景左侧的垂直线上。但是,这两个元素都聚集显示在场景的右上角,而不是我希望它们位于的位置

如何使这些元素显示在我希望它们显示的位置

下面是我如何设置节目标题的位置:

  grid.add(gameTitle, 0, 0);
  GridPane.setHalignment(gameTitle, HPos.CENTER);
  GridPane.setValignment(gameTitle, VPos.TOP);
我尝试以类似方式设置VBox对象:

  grid.getChildren().add(buttonBox);
  GridPane.setHalignment(buttonBox, HPos.LEFT);
  GridPane.setValignment(buttonBox, VPos.CENTER);
这是显示的内容:

我的整个主菜单课。(在我的主类中调用该类来构建场景):

我的主类(显示场景):


正如我所注意到的,您在一个列中添加了所有节点并在其中设置了位置,但没有指定该列需要拉伸的程度。除非指定,否则GridPane列不会自动拉伸

通过将GridPane的gridLinesVisible属性启用为true,可以调试程序

grid.setGridLinesVisible(true);
您需要指定columnConstraints,以使GridPane列拉伸到可用宽度

ColumnConstraints constraint = new ColumnConstraints();
constraint.setHgrow(Priority.ALWAYS);
grid.getColumnConstraints().add(constraint);

正如我所注意到的,您在一个列中添加了所有节点并在其中设置了位置,但没有指定该列需要拉伸的程度。除非指定,否则GridPane列不会自动拉伸

通过将GridPane的gridLinesVisible属性启用为true,可以调试程序

grid.setGridLinesVisible(true);
您需要指定columnConstraints,以使GridPane列拉伸到可用宽度

ColumnConstraints constraint = new ColumnConstraints();
constraint.setHgrow(Priority.ALWAYS);
grid.getColumnConstraints().add(constraint);

网格窗格的子项添加到的默认单元格是
(0,0)
,这是您在此行中执行的操作:

grid.getChildren().add(buttonBox);
您需要将此更改为

grid.add(buttonBox, 0, 1);
将行索引设置为1。(以这种方式分配行索引有多种选择,但在这种情况下,这是最方便的选择。)

但这不会导致第一列占据
GridPane
的全部宽度。如果还希望第一列具有所有可用宽度,则需要通过添加以下内容来指定:


网格窗格的子项添加到的默认单元格是
(0,0)
,这是您在此行中执行的操作:

grid.getChildren().add(buttonBox);
您需要将此更改为

grid.add(buttonBox, 0, 1);
将行索引设置为1。(以这种方式分配行索引有多种选择,但在这种情况下,这是最方便的选择。)

但这不会导致第一列占据
GridPane
的全部宽度。如果还希望第一列具有所有可用宽度,则需要通过添加以下内容来指定: