【问题标题】:Javafx Scrollpane Constraints when inside another Pane在另一个窗格内时的 Javafx Scrollpane 约束
【发布时间】:2017-10-05 00:00:36
【问题描述】:

我对 Javafx 有点陌生,并且只用它做过简单的项目。我目前正在从事一个更复杂的项目,并且偶然发现了 ScrollPanes 的问题。每当我调整应用程序的大小时,我都在努力找出如何让 ScrollPane 调整高度。这是我的结构:

橙色箭头指示的窗格工作正常,我可以添加约束,如下所示:

但是,我在 ScrollPane 或 ScrollPane 内的 AnchorPane 上没有约束选项,这会导致在调整应用程序大小时出现这种情况:

如果我删除父窗格并将 ScrollPane 放在它的位置,我可以添加约束,但是如果我这样做了,我将无法像现在这样正确设计应用程序。简而言之,我只是好奇是否有其他方法可以使用,或者我只是在使用不好的做法,在这种情况下,任何建议都会受到赞赏。

【问题讨论】:

  • AnchorPane 几乎从来都不是一个好的选择,因为它鼓励等效于“绝对布局”。绝对不应该使用 Pane 类。如果您希望单个组件填充所有可用空间,请将其设置为 BorderPane 的中心。我建议(至少)阅读 BorderPane、GridPane、FlowPane、TilePane、StackPane、HBox 和 VBox 的类级文档。请记住,嵌套布局是正常的和预期的。

标签: java javafx


【解决方案1】:

Pane 只需将孩子调整为首选大小并保持位置。这意味着不应用调整大小。此外,它不提供任何进一步的布局约束。

您可以简单地将父窗格替换为 AnchorPane,然后锚点将再次可用。

但是,AnchorPane(base) 包含这么多 Panes,可能都具有不同的 AnchorPane 约束,这表明场景可能应该进行一些重组。例如。 GridPaneVBoxHBox 或它们的组合可以帮助您以更简单的方式实现所需的结果。

有关可用布局和示例用途的说明,请参阅 Using Built-in Layout Panes

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-06-10
    • 1970-01-01
    • 1970-01-01
    • 2013-07-23
    • 2013-11-26
    • 1970-01-01
    相关资源
    最近更新 更多