网格窗格中的java居中按钮和文本(JavaFX)
我有一个简单的显示,上面有一个标题,中间有一个列表,底部有三个按钮。我希望顶部的标题和底部的按钮水平居中
以下是我一直尝试使用的代码:
<?xml version="1.0" encoding="UTF-8"?>
<?import javafx.scene.control.Button?>
<?import javafx.scene.control.Label?>
<?import javafx.scene.control.ListView?>
<?import javafx.scene.layout.GridPane?>
<GridPane
xmlns="http://javafx.com/javafx/8.0.40"
xmlns:fx="http://javafx.com/fxml/1"
fx:controller="controllers.SongLibraryController"
>
<Label
text="Todo List"
GridPane.columnSpan="3"
GridPane.rowIndex="0"
GridPane.halignment="CENTER"
/>
<ListView
prefWidth="300"
prefHeight="400"
fx:id="listView"
GridPane.columnSpan="3"
GridPane.rowIndex="1"
/>
<Button
fx:id="editItem"
GridPane.halignment="CENTER"
GridPane.columnIndex="0"
GridPane.rowIndex="2"
text="Edit Item"
/>
<Button
fx:id="addItem"
GridPane.halignment="CENTER"
GridPane.columnIndex="1"
GridPane.rowIndex="2"
text="Add Item"
/>
<Button
fx:id="deleteItem"
GridPane.halignment="CENTER"
GridPane.columnIndex="2"
GridPane.rowIndex="2"
text="Delete Item"
/>
</GridPane>
这是电流输出:
我尝试过做各种事情,比如为我的GridPane使用alignment="CENTER"
,但似乎没有任何效果。任何帮助都将不胜感激
# 1 楼答案
要以编程方式对齐网格窗格中的元素,必须从GridPane类调用静态方法
要设置水平对齐,请调用
GridPane.setHalignment(Node n, HPos p)
。要设置垂直对齐,请调用GridPane.setValignment(Node n, VPos p)
您可以阅读Oracle自己的布局指南here。如果向下滚动直到看到饼图,它们将显示如何在网格窗格中管理布局的示例
要通过FXML管理它,您必须设置某个属性。我记不起我的头顶了,但我想它在你的GridPane节点中
# 2 楼答案
您需要将GridPane的对齐方式设置为
alignment="center"
,所有元素都将在中心对齐更新 您可以像这样将按钮对准中心
在此更新之后,还可以从每个节点删除columnSpan属性