gpt4 book ai didi

java - 框布局可以接受包含元素的大小吗?

转载 作者:行者123 更新时间:2023-12-01 16:06:10 25 4
gpt4 key购买 nike

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

添加:

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

BoxLayout attempts to arrange components at their preferred widths (for horizontal layout) or heights (for vertical layout). For a horizontal layout, if not all the components are the same height, BoxLayout attempts to make all the components as high as the highest component. If that's not possible for a particular component, then BoxLayout aligns that component vertically, according to the component's Y alignment. By default, a component has a Y alignment of 0.5, which means that the vertical center of the component should have the same Y coordinate as the vertical centers of other components with 0.5 Y alignment.

就我而言,我有 Y_AXIS 布局。是“垂直”布局吗?如果是这种情况,则应将组件布置在其首选高度。什么是“首选高度”?

接下来写道“对于水平布局,如果不是所有组件的高度相同,BoxLayout 会尝试使所有组件与最高组件一样高”。所以,我假设垂直布局。 BoxLayout 会尝试使所有组件与最宽的组件一样宽。正确的?那么垂直布局中使用的“首选高度”又如何呢?

还写道,如果水平布局不可能使所有组件与最高组件一样高,它将垂直对齐组件。 “垂直对齐”是什么意思?水平布局垂直对齐组件不奇怪吗?

添加2:

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

最佳答案

使用GridBagLayout反而。手动配置很痛苦,但是有一些工具可以为您编写约束(最著名的是 NetBeans 的 GUI 构建器)——并且它使您可以完全控制每个组件的拉伸(stretch)和定位方式。

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

关于java - 框布局可以接受包含元素的大小吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2538140/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com