Java 长方体布局可以接受包含元素的大小吗?

Java 长方体布局可以接受包含元素的大小吗?,java,user-interface,swing,layout,Java,User Interface,Swing,Layout,我使用了myPanel.setLayout(新的BoxLayout(myPanel,BoxLayout.Y_轴))垂直排列面板(一个在另一个下)。但是以所示方式定义的myPanel会更改包含的面板。更详细地说,它尝试为包含的面板设置相同的高度和宽度。可以改变吗?BoxLayout可以采用包含元素的大小吗 添加: 因此,按照建议,让我们阅读文档: BoxLayout试图安排 部件的首选宽度 (用于水平布局)或高度 (用于垂直布局)。暂时 水平布局,如果不是所有 组件高度相同, BoxLayout尝

我使用了
myPanel.setLayout(新的BoxLayout(myPanel,BoxLayout.Y_轴))垂直排列面板(一个在另一个下)。但是以所示方式定义的
myPanel
会更改包含的面板。更详细地说,它尝试为包含的面板设置相同的高度和宽度。可以改变吗?BoxLayout可以采用包含元素的大小吗

添加:

因此,按照建议,让我们阅读文档:

BoxLayout试图安排 部件的首选宽度 (用于水平布局)或高度 (用于垂直布局)。暂时 水平布局,如果不是所有 组件高度相同, BoxLayout尝试使所有 组件高达最高 组成部分。如果这对我来说是不可能的话 一个特定的组件,然后是BoxLayout 将该组件垂直对齐, 根据组件的Y 对齐默认情况下,组件具有 Y对齐为0.5,这意味着 构件的垂直中心 应具有与相同的Y坐标 其他物体的垂直中心 具有0.5 Y对齐的组件

在我的例子中,我有Y_轴布局。是“垂直”布局吗?如果是这种情况,则应将部件布置在其首选高度。什么是“首选高度”

接下来,它被写为“对于水平布局,如果不是所有组件都具有相同的高度,BoxLayout将尝试使所有组件与最高组件一样高”。所以,我假设对于垂直布局。BoxLayout将尝试使所有组件与最宽的组件一样宽。对吗?垂直布局中使用的“首选高度”是什么

还规定,如果水平布局无法使所有组件与最高组件一样高,则将垂直对齐组件。“垂直对齐”是什么意思?水平布局将组件垂直对齐不是很奇怪吗

添加了2:

垂直布局的问题在于,它使所有元素都像窗口一样宽。因此,包含在JPanel中的元素(具有垂直框布局)将无法保持其比例。这正是我想要避免的。

来自:

BoxLayout试图安排 部件的首选宽度 (用于水平布局)或高度 (用于垂直布局)。暂时 水平布局,如果不是所有 组件高度相同, BoxLayout尝试使所有 组件高达最高 组成部分。如果这对我来说是不可能的话 一个特定的组件,然后是BoxLayout 将该组件垂直对齐, 根据组件的Y 对齐默认情况下,组件具有 Y对齐为0.5,这意味着 构件的垂直中心 应具有与相同的Y坐标 其他物体的垂直中心 具有0.5 Y对齐的组件

改用。手动配置是一件痛苦的事情,但是有一些工具可以为您编写约束(最著名的是NetBeans的GUI builder)——并且它可以让您完全控制每个组件的拉伸和定位方式

可以设置路线、填充、插入、边距、自由空间的分布方式、最终边界的计算方式等。编写循环代码来添加行或列中具有类似约束的整个组件集合并不困难