【发布时间】:2017-02-10 20:22:22
【问题描述】:
我有一个带有 BoxLayout Y 轴的 JPanel,并且想向这个面板添加多个 JLabel。标签应该适合面板的宽度,但只使用他们需要的高度。你们谁能帮帮我?
【问题讨论】:
-
默认情况下
BoxLayout尊重组件的preferredSize,您应该使用另一种布局,例如GridLayout,或者将BoxLayout的每一行包裹在FlowLayout中。但是为了尽快获得更好的帮助,请张贴minimal reproducible example 以及您的实际和所需输出的图像或 ascii 艺术,以最小尺寸和可调整大小并使用额外空间。 -
感谢您的回答。这是我使用 GridLayout 时的样子:prntscr.com/e74ftl,因为我不知道用户使用它时会有多少标签。这就是 BoxLayout 的外观:prntscr.com/e74gr0,但我希望标签与它们所在的面板一样,而不是像显示字符串所需的那样大。
-
@Frakcool,
By default BoxLayout respects the preferredSize of the components,- 实际上在这种情况下 BoxLayout 尊重组件的最大尺寸。通常,当有额外空间时,BoxLayout 将允许组件增长。但是,JLabel 的首选大小和最大大小是相同的,因此标签永远不会增长到填满可用空间。 -
@camickr 是的,我读错了,对
JLabel和JTextField感到困惑,但你是对的 :) 感谢您的澄清
标签: java swing layout-manager boxlayout