JavaFX:如何定位组件/节点?

时间:2015-04-29 04:06:45

标签: javafx positioning

JavaFX 中,是否有与setLayout();setBounds();类似的内容?

例如,我想将按钮定位到我想要的位置

3 个答案:

答案 0 :(得分:8)

JavaFX场景图上的所有内容都是Node。每个节点都有一个X坐标和一个Y坐标。但是,set/change position子组件有不同的方法。这取决于用于在场景图上显示组件的布局管理器。

  • 布局管理器(例如Group)不计算儿童的默认位置,您可以直接使用layoutXlayoutY
  • 还有其他布局管理器,例如Regionautomatically使用layoutX计算子级的默认位置,并从需要使用的默认位置调整组件的位置translateXtranslateY值。

来自文档:

  

如果管理节点并将Region作为其父节点,则布局区域将根据自己的布局策略设置layoutX。如果节点未受管理或由组成为父级,则应用程序可以直接设置layoutX以定位它。

答案 1 :(得分:0)

您应该阅读Node课程(开头的长篇文章),然后特别是relocatesetLayoutX(和Y)和setTranslateX(以及Y)。

答案 2 :(得分:-1)

除了已经提到的内容外,如果您可以将ur按钮(或与此相关的任何节点)放置在堆栈窗格中,那么您可以利用Stackpane的alignment属性,该属性采用javafx.geometry.Pos-堆栈窗格中的子对象。例如,在您的情况下:

<StackPane >
<Button translateY="-15" translateX="15"  StackPane.alignment="TOP_RIGHT"/>
</StackPane>