在Hbox内,我确实希望有一个文本作为标题,以及一个带有submit按钮的搜索栏。
title应该位于左侧,但search bar的右侧是submit按钮。
我的操作方式:
<HBox>
<Label text="Penfactory Software"/>
<HBox alignment="TOP_RIGHT">
<TextField fx:id="idSearch" />
<Button fx:id="idSubmit" text ="Submit" onAction="#submit"/>
</HBox>
</HBox>
Hbox可以为其元素指定一个位置,对齐方式为“ TOP_RIGHT”。问题:只有顶层lvl HBox才能给出对齐方式,换句话说,如果HBox中有一个HBox,则只有top-level HBox会determine放置元素的位置。
我如何实现上述目标,即标题位于左侧,搜索+按钮位于右侧?
您必须添加Pane
。将Pane's
最大宽度设置为MAX_VALUE
,将Hgrow
设置为ALWAYS
。
<?xml version="1.0" encoding="UTF-8"?>
<?import javafx.scene.control.Button?>
<?import javafx.scene.control.Label?>
<?import javafx.scene.control.TextField?>
<?import javafx.scene.layout.HBox?>
<?import javafx.scene.layout.Pane?>
<?import javafx.scene.text.Font?>
<HBox maxHeight="-Infinity" maxWidth="-Infinity" minHeight="-Infinity" minWidth="-Infinity" prefHeight="400.0" prefWidth="600.0" xmlns="http://javafx.com/javafx/8.0.111" xmlns:fx="http://javafx.com/fxml/1">
<children>
<Label text="Hello world!">
<font>
<Font size="17.0" />
</font>
</Label>
<Pane maxHeight="-Infinity" maxWidth="1.7976931348623157E308" HBox.hgrow="ALWAYS" />
<TextField />
<Button mnemonicParsing="false" text="Button" />
</children>
</HBox>