当我运行JavaFx应用程序时,我有一种奇怪的行为:
如您所见,元素没有正确对齐。我已经使用SceneBuilder创建了该视图,而编辑器中没有这个间隙。
我的视图是由一个GridPane组成的。GridPane的右侧单元格(在图片上)每个单元格都包含一个HBox,每个单元格都包含元素(按钮/文本字段)。我没有在这里配置任何特定的东西,也没有使用任何CSS。
以下是完整的FXML:
<?xml version="1.0" encoding="UTF-8"?>
<?import javafx.scene.text.*?>
<?import javafx.geometry.*?>
<?import javafx.scene.control.*?>
<?import java.lang.*?>
<?import javafx.scene.layout.*?>
<?import javafx.scene.layout.AnchorPane?>
<AnchorPane xmlns="http://javafx.com/javafx/8.0.40" xmlns:fx="http://javafx.com/fxml/1" fx:controller="MyController">
<children>
<GridPane hgap="3.0" vgap="3.0" AnchorPane.bottomAnchor="0.0" AnchorPane.leftAnchor="0.0" AnchorPane.rightAnchor="0.0" AnchorPane.topAnchor="0.0">
<columnConstraints>
<ColumnConstraints hgrow="NEVER" />
<ColumnConstraints hgrow="NEVER" />
<ColumnConstraints hgrow="ALWAYS" />
</columnConstraints>
<rowConstraints>
<RowConstraints vgrow="SOMETIMES" />
<RowConstraints vgrow="SOMETIMES" />
<RowConstraints vgrow="SOMETIMES" />
</rowConstraints>
<children>
<Label text="label1" />
<Label text="label2" GridPane.rowIndex="1" />
<Button defaultButton="true" mnemonicParsing="false" onAction="#handleGo" text="Go!" GridPane.rowIndex="2">
<graphic>
<TextField fx:id="iterations" alignment="CENTER" prefWidth="43.0" style="-fx-padding: 0.166667em 0.333333em 0.166667em 0.333333em;" text="50000" />
</graphic></Button>
<Button fx:id="selectFileButton" maxWidth="1.7976931348623157E308" mnemonicParsing="false" onAction="#handleFileSelection" text="Select file" GridPane.columnIndex="1" GridPane.rowIndex="1" />
<HBox spacing="3.0" GridPane.columnIndex="2">
<children>
<TextField fx:id="customValue" editable="false" HBox.hgrow="ALWAYS" />
<Button fx:id="deleteButton" mnemonicParsing="false" onAction="#handleDelete" text="Delete" visible="false" />
</children>
</HBox>
<HBox spacing="3.0" GridPane.columnIndex="2" GridPane.rowIndex="1">
<children>
<Button fx:id="editButton" mnemonicParsing="false" text="Edit" />
<Button mnemonicParsing="false" text="New" />
</children>
</HBox>
<ComboBox fx:id="selection" maxWidth="1.7976931348623157E308" onAction="#handleSelection" GridPane.columnIndex="1" />
</children>
</GridPane>
</children>
</AnchorPane>
我是不是漏了什么?
GridPane
中控件的默认对齐方式(可能用于一般控件?)是左上角
,而对于HBox
,默认值是左上角
。添加
alignment="CENTER_LEFT"
到您的HBox
应该正确对齐它们。
我目前有一个GridPane作为布局的根,我有另一个GridPane里面包含2个标签。我试图让这些标签中的一个左对齐,另一个右对齐。 我尝试使用GridPane.halignment="右",但这对标签没有影响。 我的布局代码如下: 如何按照我想要的方式对齐这些标签?GridPane对我想做的事情来说是理想的吗?我对JavaFX相当缺乏经验,但对Android的布局管理器很熟悉。
我在fxml中有一个GridPane,它有一个文本标题和4个按钮。GridPane本身是居中对齐的,但所有按钮都在网格的列内左对齐。我知道如何使用Java代码更改项目的对齐方式,但这不是理想的情况,因为我希望所有样式都使用FXML和CSS处理。有谁能建议在JavaFX的GridPane视图中居中对齐单元格元素的最佳方法吗?
在我的项目中,我有一个包含多个值的ComboBox。当我的应用程序开始时,我执行以下操作: 其中是字符串列表。 同时,在应用程序中,可以更改此值。但是,由于我已经将此组合框添加到我的GridPane中,然后在该值更改(gui.columns)时添加到场景中,因此新值没有显示在组合框中。因为我已经添加了旧的gui.course。有没有办法用新的gui.course_P更新createTestButt
我有以下代码,成功地将单元格的内容集中在我的Vaadin网格中。 它让它看起来像这样。 如何实现垂直居中?当我尝试添加样式名称 v-对齐中间时,它什么也没做。
我正在JavaFx中开发一个应用程序,其中我有两个选项卡。 在第一个选项卡中,我有ComboBox: 在第二个选项卡中,我有这样的Gridpane: 我想要的是当用户从Tab A的组合框中选择3时,例如: 它应该在Tab B的Gridpane中添加3行,每列添加文本字段、复选框和datepicker。A列有文本字段,B列有复选框,C列有日期选择器,如下所示: 请帮助我如何才能实现这一点,实现后,我
我正在开发一个项目,该项目是使用SVG构建图表所必需的,因为素面没有我需要使用的规格。所以,我所做的基本上是使用标签 $ xmlns:xlink=“http://www.w3.org/1999/xlink” 那个代码: svg工作正常。问题是,当我将svg放入panelGroup时,我的panelGrid停止并排对齐我的内容,并将所有内容放入,就好像它是columns="1 "一样。 有人有主意吗