[英]getting the buttons in a gridPane and change their text using javaFx
[英]Centering buttons and text in a GridPane (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"
,但似乎没有任何效果。 任何帮助,将不胜感激!
您需要将GridPane的alignment="center"
设置为alignment="center"
,所有元素都将在中心对齐。
更新您可以像这样在中心对齐按钮。
<HBox GridPane.rowIndex="2" GridPane.columnSpan="3" alignment="CENTER" spacing="25">
<Button text="b1"/>
<Button text="b2"/>
<Button text="b3"/>
</HBox>
更新之后,您还可以从每个节点中删除columnSpan属性。
若要以编程方式在网格窗格内对齐元素,则必须从GridPane类调用静态方法。
要设置水平对齐方式,请调用GridPane.setHalignment(Node n, HPos p)
。 要设置垂直对齐方式,请调用GridPane.setValignment(Node n, VPos p)
。
您可以在此处阅读Oracle自己的布局指南。 如果向下滚动直到看到饼图,它们将显示如何在网格窗格中管理布局的示例。
要通过FXML对其进行管理,您将必须设置某个属性。 我不记得我的头顶,但我认为它是GridPane节点中的alignment="center"
。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.