【问题标题】:BoxLayout from bottom to top (JavaSwing)BoxLayout 从下到上(Java Swing)
【发布时间】:2018-09-14 16:13:22
【问题描述】:

我有一些组件,我在其中使用BoxLayout 添加元素,但我的问题是我需要其中一些从下到上而不是从上到下显示。我怎样才能做到这一点?有没有办法用BoxLayout 做到这一点,或者是否有更合适的布局,将元素添加到容器底部,然后将它们堆叠起来?

【问题讨论】:

  • 到目前为止你做了什么?
  • 我有一些带有 BoxLayout 的容器,我正在向其中添加 JLabels。只是对于其中一些容器来说一切都很好,我希望添加实际上是从容器底部开始的,所以它是自下而上填充的。
  • 按相反的顺序添加组件!为了将它们限制在可用空间的“底部”,请将带有框布局的面板添加到将在底部显示的布局/约束中(例如 BorderLayoutPAGE_END)。
  • 顺序对我来说无关紧要,就是元素必须从底部填充,所以当我有1个元素时,它应该直接放在容器的底部。

标签: java swing layout-manager boxlayout


【解决方案1】:

有没有更合适的布局,先将元素添加到容器底部,然后将它们堆叠起来?

一般规则是:

add(component);

将组件添加到容器的末尾。

add(component, 0);

将组件添加到容器的开头。

确切的布局取决于您使用的面板和布局管理器的组合。

例如,您需要将使用垂直 BoxLayout 的面板添加到框架的 PAGE_END 以使所有组件都位于底部。

【讨论】:

  • 我的问题不是元素的顺序,所以假设我有一个空容器,添加到 0 和结束将是同一件事,但我需要将该元素添加到底部容器。添加第二个元素仍应将这两个元素保留在容器底部 - 就像一瓶水一样 - 我需要我的元素从底部到顶部填充容器。
  • @Geri,我已经解释过了。您有一个使用 BoxLayout 的面板,并且您不断添加组件添加索引 0。然后使用 BorderLayout.PAGE_END 作为约束将此面板添加到 JFrame(默认情况下使用 BorderLayout)。现在整个面板显示在框架的底部,您添加的每个对象都将显示在面板的顶部。
猜你喜欢
  • 1970-01-01
  • 2013-11-22
  • 1970-01-01
  • 1970-01-01
  • 2021-11-20
  • 2012-03-12
  • 1970-01-01
  • 2011-02-12
  • 1970-01-01
相关资源
最近更新 更多