GridPane中Label的JavaFX对齐

宁静

我对为什么设置Label.setAlignment(Pos.CENTER_RIGHT)不会影响随后添加到GridPane中的标签的对齐感到困惑?唯一的方法似乎是通过网格(例如ColumnConstraints)或通过将Label添加到具有正确对齐的HBox。

为什么将标签的对齐方式设置为CENTER_RIGHT无效?我可以看到API指出:“指定在标签内有空白时,应如何对齐标签内的文本和图形。” 但是,如何在标签中留出空白?

詹姆斯·D

TL:DR版本:代替label.setAlignment(Pos.CENTER_RIGHT);使用GridPane.setHalignment(label, HPos.RIGHT);

JavaFX使用自上而下的布局。因此,场景将根节点的大小调整为场景的大小,根节点的大小和位置取决于其布局策略和场景为其提供的空间量,然后每个子节点调整其子节点的大小和位置取决于其自身的布局策略及其可用空间量,等等。

根据的文档LabelalignmentProperty

指定当标签内有空白时如何对齐标签内的文本和图形。

当然,标签可用的空间量由其父级(在本例中为网格窗格)确定。您当然可以通过阅读网格文档了解有关网格窗格的布局策略以及如何对其进行配置的信息简而言之:

默认情况下,网格窗格将为每个节点分配其首选大小,并且,如果放置在其中的单元格具有额外的空间,则会在网格单元格的左上方对齐该节点。标签的首选大小当然是计算得出的大小:刚好足以容纳其内容。因此,您会看到,仅将标签放置在网格窗格中并在标签上设置对齐将不会有任何效果,因为标签的大小刚好足以容纳其内容,并且没有多余的空间来对齐文本/图形。您可以通过在标签上放置背景色或边框来形象化此效果。

因此,您可以将标签的对齐方式设置为CENTER_RIGHT,然后指示网格窗格让标签变大。这需要两件事:首先,告诉网格窗格让标签填充单元格的宽度:

GridPane.setFillWidth(label, true);

并且,由于网格窗格还将遵循子节点的最大大小,并且标签默认情况下使用其首选大小作为其最大大小,因此允许标签增长:

label.setMaxWidth(Double.MAX_VALUE);

然后标签将增长到单元格的大小,所以如果您还有

label.setAlignment(Pos.CENTER_RIGHT);

它将使自己的内容与右侧对齐。

一个更明智的方法可能只是告诉网格窗格如何在单元格中对齐标签:

GridPane.setHalignment(label, HPos.RIGHT);

然后,让标签采用其默认大小和对齐方式,一切正常。

您还可以使用ColumnConstraints对象为特定列中的所有标签设置默认对齐方式,这对于构建表单而言是最方便的方法。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

javafx gridpane中心对齐并对齐所有标签

来自分类Dev

获取JavaFX GridPane中的行数?

来自分类Dev

GridPane中的JavaFX居中VBox

来自分类Dev

Javafx中GridPane内的HBox

来自分类Dev

gridPane中的JavaFx路径转换

来自分类Dev

JavaFX:将图像插入到GridPane中

来自分类Dev

在JavaFX的GridPane中从TextArea获取文本

来自分类Dev

GridPane(JavaFX)中的居中按钮和文本

来自分类Dev

ScrollPane 中的 JavaFX GridPane 比预期的要大

来自分类Dev

JavaFX 在 GridPane 中动态制作按钮

来自分类Dev

GridPane 未居中对齐

来自分类Dev

在JavaFX中对齐TextArea的内容

来自分类常见问题

使用JavaFX中的箭头键浏览GridPane中的TextField

来自分类Dev

JavaFX colspan不适用于GridPane中的文本

来自分类Dev

替换JavaFX GridPane中(row,col)处的节点

来自分类Dev

可以确定GridPane(JavaFX)中的行数和列数

来自分类Dev

JavaFX为GridPane中的项目设置边距

来自分类Dev

单元格中的JavaFX GridPane按钮彼此相距太远

来自分类Dev

带有prefWidth =“ Infinity”的GridPane中的按钮会破坏JavaFX

来自分类Dev

在gridPane中获取按钮并使用javaFx更改其文本

来自分类Dev

如何设置GridPane以自动适应JavaFX中的内容

来自分类Dev

可以使用JavaFX在GridPane中拖动形状

来自分类Dev

我无法在JavaFx中实用地自定义GridPane

来自分类Dev

JavaFX - 在 GridPane 中单击会打印出 Pane 而不是 TextField

来自分类Dev

按钮未出现在 GridPane JavaFX8 中

来自分类Dev

JavaFX:TextField 中的文本对齐错误

来自分类Dev

如何从 Main.java 文件对齐 Java FX GridPane 中的矩形?

来自分类Dev

获取gridpane Javafx的数字行

来自分类Dev

在GridPane中加长Javafx滑块

Related 相关文章

热门标签

归档