我在fxml中有一个GridPane,它有一个文本标题和4个按钮。GridPane本身是居中对齐的,但所有按钮都在网格的列内左对齐。我知道如何使用Java代码更改项目的对齐方式,但这不是理想的情况,因为我希望所有样式都使用FXML和CSS处理。有谁能建议在JavaFX的GridPane视图中居中对齐单元格元素的最佳方法吗?
您需要单独对齐GridPane中的每个对象,而不是GridPane本身。
要做到这一点,去哟布局: ObjectName(ex.按钮),并在对齐选择中心。
在FXML中:
<GridPane ...>
<columnConstraints>
<!-- one of these for each column: you can obviously have other properties set here if needed -->
<ColumnConstraints halignment="CENTER" />
</columnConstraints>
</GridPane>
要将GridPane
的子节点对齐到中心,需要设置子节点的Halignment和Valignment。
在Java代码中,您可以执行类似的操作:
GridPane.setHalignment(node, HPos.CENTER); // To align horizontally in the cell
GridPane.setValignment(node, VPos.CENTER); // To align vertically in the cell
在FMXL中,您可以通过以下方式实现类似的效果:
<GridPane>
... // other properties
<children>
<Button mnemonicParsing="false" text="Button" GridPane.halignment="CENTER" GridPane.valignment="CENTER" />
</children>
</GridPane>
如果要以相同的顺序对齐特定列或行的所有节点,有一种更简单的方法可以实现这一点。您可以创建ColumnConstraints或RowConstraints并将其添加到GridPane,而不是向节点添加halignment/valignment
。
<GridPane>
<columnConstraints>
<ColumnConstraints hgrow="SOMETIMES" halignment="CENTER" minWidth="10.0" prefWidth="100.0" />
... // More constraints for other columns
</columnConstraints>
<children>
<Button mnemonicParsing="false" text="Button" />
</children>
</GridPane>
您也可以类似地添加RowConstraint
。
我目前有一个GridPane作为布局的根,我有另一个GridPane里面包含2个标签。我试图让这些标签中的一个左对齐,另一个右对齐。 我尝试使用GridPane.halignment="右",但这对标签没有影响。 我的布局代码如下: 如何按照我想要的方式对齐这些标签?GridPane对我想做的事情来说是理想的吗?我对JavaFX相当缺乏经验,但对Android的布局管理器很熟悉。
当我运行JavaFx应用程序时,我有一种奇怪的行为: 如您所见,元素没有正确对齐。我已经使用SceneBuilder创建了该视图,而编辑器中没有这个间隙。 我的视图是由一个GridPane组成的。GridPane的右侧单元格(在图片上)每个单元格都包含一个HBox,每个单元格都包含元素(按钮/文本字段)。我没有在这里配置任何特定的东西,也没有使用任何CSS。 以下是完整的FXML: 我是不是漏了什
在我的项目中,我有一个包含多个值的ComboBox。当我的应用程序开始时,我执行以下操作: 其中是字符串列表。 同时,在应用程序中,可以更改此值。但是,由于我已经将此组合框添加到我的GridPane中,然后在该值更改(gui.columns)时添加到场景中,因此新值没有显示在组合框中。因为我已经添加了旧的gui.course。有没有办法用新的gui.course_P更新createTestButt
我试图将乘法VBox添加到scrollpane中的gridpane(在下面的codesnippet中称为refPane)。 它在一行中添加不超过ITEMS_PER_ROW的Vbox,并在下一行中继续。也不应该有更多的行,然后ITEMS_PER_COLUM可见。问题是,如果我添加更多的ITEMS_PER_ROW*ITEMS_PER_COLUMN到网格中,而不是obingbeingscrollable
问题内容: 我在div中设置了一堆相同大小的块,该div 设置为对齐块。 这些块会水平填充div,并且随着浏览器窗口的缩小,一些块会换行,从而创建更多的行和更少的列。我希望所有内容仍保持居中,最后一行对齐到左侧,如下所示: 当前发生的情况是: 我不能像一个建议那样添加额外的填充div,因为可以有任意数量的块,并且行和列的数量将根据浏览器的宽度而变化。由于相同的原因,我也不能直接设置第7块的样式。无
我无法在SceneBuilder(eclipse)中使用GridPane,当我尝试在项目中插入GridPane时,SceneBuilder会在没有提示任何消息的情况下退出。 这就是我在日志文件中找到的: