【问题标题】:JavaFx-- positioning components in SceneBuilderJavaFx——SceneBuilder中定位组件
【发布时间】:2015-08-10 04:59:02
【问题描述】:

我使用拖放界面将组件放在我想要的位置,但是当调整窗口大小时,它们会失去它们的相对位置。我附上了我的层次结构和两个窗口的屏幕截图,以显示组件如何失去位置。

Hierarchy Fullscreen

【问题讨论】:

  • 如果您将图像导入到您的问题中,那就太好了,因此将来不会有损坏的链接。
  • 我找不到第二个窗口图像,只有全屏。请在此处发布您的 java 代码和 fxml,以便我们为您提供帮助。考虑制作一个 MCVE:stackoverflow.com/help/mcve
  • 我更改了帐户,现在我没有足够的声誉来导入图像或在此处放置超过 2 个链接。这是正常大小的图像:dropbox.com/s/1ufuut0zvjvcknf/normal%20size.png?dl=0 我现在唯一的代码是 SceneBuilder 生成的 fxml。我稍后会提出来。 @henriqueor

标签: java user-interface layout javafx scenebuilder


【解决方案1】:

如果您想使用 AnchorPane 来布局组件,您可以设置 Anchor Pane 约束,如下图所示:

这样,无论你调整屏幕大小,按钮都将始终与 AnchorPane 的右边框保持 10px 的距离。

当您使用 AnchorPane 在屏幕上放置组件时,您不会有相对定位,您应该使用其他容器来布局您的应用程序。在此处阅读有关如何使用布局窗格的更多信息:Using Layout Panes

【讨论】:

    【解决方案2】:

    你需要学习如何使用Layout Panes。拖放组件会导致绝对定位,这是非常糟糕的做法。

    【讨论】:

    • 你确定吗?我认为如果我只使用窗格,就会发生绝对定位,在我的情况下我没有。正如您在我的层次结构中看到的那样,我使用了(通过拖放)布局窗格。但它的表现就像我做了绝对位置。
    • 拖放总是给您留下一些绝对定位。首先研究布局窗格,以便了解如何使用它们,然后遍历层次结构并在布局设置中查找绝对值。你想要的越少越好(最好没有)。
    猜你喜欢
    • 1970-01-01
    • 2015-06-10
    • 2021-08-17
    • 1970-01-01
    • 2012-08-24
    • 2015-12-08
    • 2016-05-30
    • 1970-01-01
    • 2014-12-02
    相关资源
    最近更新 更多