Javafx 按比例调整拆分窗格的大小

Javafx 按比例调整拆分窗格的大小,javafx,javafx-8,Javafx,Javafx 8,当我调整内部有拆分窗格的窗口大小时,拆分窗格的大小会以不可预测的方式调整。有时给左窗格更多的空间,有时给右窗格更多的空间。有时额外的空间被分散开来,有时完全给一个窗格 例如,最大化和恢复窗口将改变分割窗格的布局——在这个过程中,它们将以某种方式设置,之后它们将具有完全不同的位置 我希望拆分窗格始终保持相同的比率。因此,如果在调整大小之前,一个是宽度的30%,另一个是宽度的70%,我希望它们在调整完成后继续保持30%/70% 关于如何做到这一点有什么建议吗 我可以通过将UI中的所有顶级项设置为不可

当我调整内部有拆分窗格的窗口大小时,拆分窗格的大小会以不可预测的方式调整。有时给左窗格更多的空间,有时给右窗格更多的空间。有时额外的空间被分散开来,有时完全给一个窗格

例如,最大化和恢复窗口将改变分割窗格的布局——在这个过程中,它们将以某种方式设置,之后它们将具有完全不同的位置

我希望拆分窗格始终保持相同的比率。因此,如果在调整大小之前,一个是宽度的30%,另一个是宽度的70%,我希望它们在调整完成后继续保持30%/70%


关于如何做到这一点有什么建议吗

我可以通过将UI中的所有顶级项设置为不可与父项一起调整大小来解决此问题:

    SplitPane.setResizableWithParent( libraryPane, Boolean.FALSE );
    SplitPane.setResizableWithParent( artSplitPane, Boolean.FALSE );
    SplitPane.setResizableWithParent( currentListSplitPane, Boolean.FALSE );
    SplitPane.setResizableWithParent( primarySplitPane, Boolean.FALSE );
    SplitPane.setResizableWithParent( currentPlayingPane, Boolean.FALSE );
我不知道它是如何工作的,也不知道为什么,但我偶然发现了它,它正是我想要的:四个窗格线性扩展,同时保持基本比例(库、主拆分、当前列表、艺术),一个窗格不改变大小(当前播放)

下面是一幅注释非常糟糕的图像:

我最好的猜测是,有一些聪明的代码试图在调整窗口大小时智能地调整内容大小,通过将
resizebleithparent
设置为false,聪明的代码将关闭,一些基本代码将启动


无论它是如何工作的,这对我来说都是完美的,我希望它能帮助其他人

很高兴你回答了自己的问题。我建议使用
Platform.runLater
而不是
setresizebleithparent
来处理您遇到问题的聪明代码。请参阅我的答案。

Post a。