【问题标题】:How to make BoxLayout behave as vertical FlowLayout?如何使 BoxLayout 表现为垂直 FlowLayout?
【发布时间】:2012-09-29 08:06:08
【问题描述】:

FlowLayout 从右侧执行“压力”,因此所有组件都试图采用它们的最小宽度。相反,BoxLayout 试图分散所有组件以填充整个空间的高度。

我可以在BoxLayout 中添加一些填充物作为最后一个组件或使所有组件的高度最小的东西吗?

【问题讨论】:

  • 它们的最小宽度 否:FlowLayout 始终将它们保持在 prefSize :) 在 BoxLayout 中,在末尾添加胶水,或者确保孩子们将 max 设置为合理的值。从长远来看,最好选择更强大的 layoutManager,f.i. MigLayout
  • 我会使用一些带有空标签的网格布局来调整框架,这不是最简单的方法,但没有任何其他选项,总比没有好=)
  • 我自己没试过,但你可以看看这个code.google.com/p/verticalflowlayout/downloads/…

标签: java swing layout boxlayout flowlayout


【解决方案1】:

您可以使用 Box.createGlue(),它会返回一个组件,该组件占用的空间与 BoxLayout 所提供的一样多。将其添加到垂直 BoxLayout 的底部会将其他组件压缩到顶部。

您也可以使用嵌套布局。

【讨论】:

  • 现在您应该可以随心所欲地发表评论了。 :)
  • 嘘!祝我新年快乐! :D
  • 哈哈!除了(你和)法恩斯沃思教授之外,还有其他人使用这种表达方式吗? ;) 哦,祝你新年快乐。 :)
  • 很遗憾,如果盒子的其他组件准备占用比它们需要的更多的空间,这将不会产生预期的效果,例如JPanels 或 JComboBoxes。然后胶水将占用与其他组件一样多的空间,而不是“剩下的全部”。
  • @Zsar 冒着迂腐的风险,胶水仍然占用了 BoxLayout 所提供的空间——只是 BoxLayout 给了它零空间。
猜你喜欢
  • 2013-09-15
  • 2014-10-31
  • 1970-01-01
  • 1970-01-01
  • 2013-05-26
  • 2013-01-17
  • 2015-05-06
  • 2020-06-10
  • 2012-06-18
相关资源
最近更新 更多