Java 在Swing中均匀调整两个滚动窗格的大小

Java 在Swing中均匀调整两个滚动窗格的大小,java,swing,resize,jscrollpane,grouplayout,Java,Swing,Resize,Jscrollpane,Grouplayout,我正在设计一个JFrame,它包含两个按顺序排列的滚动窗格,一个在另一个下面。我正在使用NetBeans(Matisse?)的内置表单编辑器,它使用GroupLayout 我观察到的:调整框架大小时,首先调整底部滚动窗格的大小,直到它消失,然后调整此滚动窗格上方的按钮,最后调整另一个滚动窗格的大小 我想要什么:当调整帧的大小时,两个滚动窗格的大小应该相等,因此如果帧的大小改变X,我希望两个滚动窗格的大小都改变X/2 这可能吗?如何实现?(首选GroupLayout解决方案) 注意:总体布局包括按

我正在设计一个JFrame,它包含两个按顺序排列的滚动窗格,一个在另一个下面。我正在使用NetBeans(Matisse?)的内置表单编辑器,它使用GroupLayout

我观察到的:调整框架大小时,首先调整底部滚动窗格的大小,直到它消失,然后调整此滚动窗格上方的按钮,最后调整另一个滚动窗格的大小

我想要什么:当调整帧的大小时,两个滚动窗格的大小应该相等,因此如果帧的大小改变X,我希望两个滚动窗格的大小都改变X/2

这可能吗?如何实现?(首选GroupLayout解决方案)

注意:总体布局包括按钮和标签,以类似表格的方式放置。所以GroupLayout已经非常有用了

附言:除了简单的布局(网格、长方体)之外,似乎最好的选择是migloayout

让我引用

生长和收缩 当一个组件没有被指定为首选大小时,应该发生什么是非常可定制的。可以选择将组件划分为“增长”和“收缩”优先级组,在调整优先级较低的组件/行/列的大小之前,优先级较高的组件将收缩/增长。可以设置这些组中的“增长权重”,以指定如何在该优先级组中的组件/行/列之间划分可用空间或收缩率


p.S.2:我现在正在使用MigLayout,它非常强大,我想再次推荐它。顺便说一句,我发现它们非常有用(所有选项都解释了)。他们网站上的演示也包含许多示例和源代码。使用MigLayout可以轻松解决此处和其他许多问题。

网格布局可确保元素大小均匀。使用:

JPanel面板=新的JPanel(新的网格布局(2,1))

因为您希望它们垂直对齐,即在彼此之后,所以2表示行数,1表示列数

然后只需将滚动窗格添加到面板:

panel.add(scrollPane1);
panel.add(scrollPane2);

有关网格布局的文档,请参阅网格布局确保元素大小均匀。使用:

JPanel面板=新的JPanel(新的网格布局(2,1))

因为您希望它们垂直对齐,即在彼此之后,所以2表示行数,1表示列数

然后只需将滚动窗格添加到面板:

panel.add(scrollPane1);
panel.add(scrollPane2);
有关网格布局的文档,请参阅

通过使用
GridLayout
gridbagloayout
BoxLayout
(必须覆盖所有
Min
Max
PreferredSize
)和
migloayout

Is this possible and how? (Solutions for GroupLayout preferred)
我不会走这条路,即使可能

通过使用
GridLayout
gridbagloayout
BoxLayout
(必须覆盖所有
Min
Max
PreferredSize
)和
migloayout

Is this possible and how? (Solutions for GroupLayout preferred)

我不会这样做,甚至是可能的

请编辑您的问题,使其包含您描述的问题。请编辑您的问题,使其包含您描述的问题。谢谢您的建议。不幸的是,网格布局对我的任务来说太死板了。你能给我们更多的细节吗?也许给我们看看代码。我相信我们能帮助你。谢谢你的建议。不幸的是,网格布局对我的任务来说太死板了。你能给我们更多的细节吗?也许给我们看看代码。我相信我们可以帮助你。似乎GroupLayout没有解决方案(我尝试了linkSize,但这并没有改变行为)。Grid、GridBag和BoxLayout不允许复杂的布局。对我来说,布局似乎是唯一的可能。它有点复杂,但应该允许控制大小调整行为。似乎GroupLayout没有解决方案(我尝试了linkSize,但这并没有改变行为)。Grid、GridBag和BoxLayout不允许复杂的布局。对我来说,布局似乎是唯一的可能。它有点复杂,但应该允许控制大小调整行为。