JavaFX绝对位置布局,但允许一些子级与父级一起增长

JavaFX绝对位置布局,但允许一些子级与父级一起增长,java,swing,javafx,Java,Swing,Javafx,我们正在将我们的应用程序从Swing迁移到JavaFX。我们有瘦客户机和服务器。服务器告诉客户端每个屏幕中有哪些组件,它们默认的x、y、宽度、高度、数据。。。因此,它们是在运行时创建的。没有预定义的.fxml。每个屏幕由几个单独的帧组成,在这些帧内,其行为与外部相同如果用户调整屏幕大小,则允许某些组件(框架和内部零件)增长(垂直、水平或双向)。它可以是任何组件(表-主要、分隔符、文本字段..)。见示例: JavaFX中的任何布局都可以处理这个问题吗?我花了好几天的时间试图找到任何解决方案,但

我们正在将我们的应用程序从Swing迁移到JavaFX。我们有瘦客户机和服务器。服务器告诉客户端每个屏幕中有哪些组件,它们默认的x、y、宽度、高度、数据。。。因此,它们是在运行时创建的。没有预定义的.fxml。每个屏幕由几个单独的帧组成,在这些帧内,其行为与外部相同如果用户调整屏幕大小,则允许某些组件(框架和内部零件)增长(垂直、水平或双向)。它可以是任何组件(表-主要、分隔符、文本字段..)。见示例:

JavaFX中的任何布局都可以处理这个问题吗?我花了好几天的时间试图找到任何解决方案,但无法实现完美的组合。在Swing中,我们的定制布局经理负责处理此问题。所以我们必须在JFX中重新制作我们自己的?多谢各位

编辑(@c0der要求提供更详细的解释):

我们有一个场景。在场景中,主要内容(例如
MainPanel
)具有基于用户选择运行的内容的内部动态内容。
主面板
尽可能使用最大空间,因此当用户调整窗口大小时,它会自动增长。在
主面板中
可以有一个或多个
面板
。在
面板中
有一个或多个组件(
表视图、文本字段、分隔符..
)。每个
面板
或内部
组件
都有x、y、宽度、高度+布尔值(如果可以水平/垂直缩放)。如果没有
面板
组件
则具有hor./ver。比绝对布局更大的比例-即使用户更改窗口大小,它们也不会调整大小。如果任何
面板
组件
具有hor./ver。缩放它可以在自己的父级内部尽可能最大地增长(父级宽度和高度),其他组件被推开,但不能在父级外部(如“流窗格”推开其他组件)

  • 组件可调整大小的表格(x=1,y=1,宽度=120,高度=120,垂直比例=true,水平比例=true)
  • 组件
    分隔符
    -垂直(x=130,y=1,宽度=1,高度=300,垂直比例=true,水平比例=false)
  • 组件
    分隔符
    水平(x=1,y=150,宽度=150,高度=1,垂直比例=false,水平比例=true)
  • 组件
    静态表格
    -右侧(x=150,y=10,宽度=130,高度=180,垂直比例=false,水平比例=false)
  • 组件<代码>静态表-底部(x=1,y=155,宽度=140,高度=160,垂直刻度=false,水平刻度=false)

  • 我使用自定义布局管理器解决了这个问题。对于那些对我感兴趣的人,我解决了这个问题,这要归功于:使用这篇文章,我创建了我的自定义布局管理器,它可以根据我的要求解决所有问题。

    我认为在core JavaFX中找不到任何满足您需要的单一布局。但是在你创建你自己的自定义布局之前,你应该考虑尝试现有布局的组合。例如,您的左侧可以是一个
    VBox
    ,具有适当的
    vgrow
    配置和子对象(即表格)的最小/预/最大宽度/高度。最外层的布局可能是
    HBox
    SplitPane
    @Slaw谢谢。我已经试过很多组合。这就是我在这里问的原因。我不知道有多少元素,或者它们的位置,宽度,高度。。它可以是一个主可调整大小的表,也可以是带有底部静态表的可调整大小的表,等等。我们有数百个屏幕,越来越多的屏幕正在准备中。请澄清布局的确切要求是什么?输入是什么?什么是固定的?什么是变化,在什么范围内?无论实现如何,您都需要一个定义,无论是自定义布局管理器还是标准布局的组合。@c0在Swing中编辑问题后,我们使用自定义布局管理器来处理此问题。所以我们必须在JFX中重新制作我们自己的?很可能是。。甚至可能是最好的解决方案。在开始之前,我会尝试了解现有布局的所有细节,包括核心布局(我第一次尝试的是GridPane,因为它是一个定义良好的网格,有适当的约束)和外部布局(你尝试过MigPane吗?或者在fx世界中的任何名称)。快乐编码:)