【问题标题】:Why aren't my components wrapping in Swing's FlowLayout?为什么我的组件没有包裹在 Swing 的 FlowLayout 中?
【发布时间】:2012-08-10 20:49:51
【问题描述】:

为什么我的组件没有使用 FlowLayout 封装在这个 JPanel 中?它们只是跑出屏幕,仅部分可见。

JPanel panel = new JPanel(new FlowLayout());
panel.add(new JLabel("TEST"));
// ... repeat adding JLabels until they go off screen when they SHOULD wrap
// to the next line...

这就是我的全部代码(除了添加和打包框架)。我误解了FlowLayout吗?我是否必须在标签或面板上设置某种尺寸?

【问题讨论】:

  • 我的猜测是它与panel的父容器有关。

标签: java swing flowlayout


【解决方案1】:

那是因为FlowLayout 没有。我知道,这很糟糕。

但是,你可以看看WrapLayout,这是解决这个问题的方法

【讨论】:

  • 很难受。我已经开始使用 MigLayout,它很棒。
【解决方案2】:

我知道这是一个老问题,但我在尝试解决同样的问题时偶然发现了它。 FlowLayout 不会包装其子组件并不完全正确。

问题在于,具有所需 FlowLayout 的 JPanel 必须位于另一个容器内,该容器将调整大小并且 允许 FlowLayout 也调整大小并因此换行。根据我的经验, BorderLayout 的 CENTER 区域是唯一允许这种情况发生的容器。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-06-06
    • 1970-01-01
    • 2021-05-12
    • 2012-10-13
    • 2019-06-10
    • 1970-01-01
    • 2017-12-15
    • 2016-02-13
    相关资源
    最近更新 更多