我有一个简单的显示,顶部有一个标题,中间有一个列表,底部有三个按钮。我希望顶部的标题和底部的按钮水平居中。
以下是我一直在尝试使用的代码:
<?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"
等各种事情,但似乎没有任何效果。任何帮助将不胜感激!
答案 0 :(得分:2)
您需要将GridPane的对齐方式设置为alignment="center"
,并且所有元素都将在中心对齐。
<强>更新强>
您可以将按钮对准中心,如下所示。
<HBox GridPane.rowIndex="2" GridPane.columnSpan="3" alignment="CENTER" spacing="25">
<Button text="b1"/>
<Button text="b2"/>
<Button text="b3"/>
</HBox>
在此更新后,您还可以从每个节点删除columnSpan属性。
答案 1 :(得分:1)
要以编程方式对齐网格窗格中的元素,您必须从GridPane类调用静态方法。
要设置水平对齐方式,请致电GridPane.setHalignment(Node n, HPos p)
。要设置垂直对齐方式,请调用GridPane.setValignment(Node n, VPos p)
。
您可以阅读Oracle自己的布局指南here。如果向下滚动直到看到饼图,它们将显示如何在网格窗格中管理布局的示例。
要通过FXML进行管理,您必须设置某个属性。我不记得我的头脑,但我认为你的GridPane节点是alignment="center"
。