【问题标题】:FXML: positioning multiple elements within an horizontal Box(HBox)FXML:在水平框(HBox)内定位多个元素
【发布时间】:2020-01-10 19:25:49
【问题描述】:

在 Hbox 中,我确实希望有一个文本作为标题,以及一个带有 提交 按钮的搜索栏。

title 应位于左侧,而 search barsubmit 按钮位于右侧.

我的做法:

<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,则只有 顶级 HBox 将确定元素所在的位置放置。

如何实现上述左侧标题和右侧搜索 + 按钮的目标?

【问题讨论】:

  • 您是否希望您的标题左对齐而其他标题右对齐?你有描述你想要什么的图片吗?

标签: java javafx model-view-controller position fxml


【解决方案1】:

您必须添加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>

【讨论】:

  • 谢谢!!!!!!!!!!!!!!!这是定位元素的唯一方法吗?
  • @Roman 还有其他选择,但 Sedrick 的解决方案可能是最清晰且最容易实现的。一种替代方法是嵌入第二个HBox,就像在您的问题中一样,然后将其设置为始终增长(例如HBox.setHgrow(embeddedBox, Priority.ALWAYS)),然后设置正确的对齐方式。另一种选择是做 Sedrick 所做的事情,但不是 Pane,而是让 Label 始终增长(必须将其最大宽度设置为最大值)。最复杂的替代方法是创建自己的布局。
  • 我相信 Mig 布局与 Swing 相关。 @多发性硬化症。我这样做对吗?如果是这样,不确定它如何应用于javafx 问题。
  • @Slaw 它有一个 JavaFX 实现,检查MigLayout。我最近确实在一个项目中使用过。
  • @Slaw On maven
猜你喜欢
  • 2010-10-19
  • 2021-08-08
  • 2021-07-11
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-09-15
相关资源
最近更新 更多