为什么我的组件没有包装在 Swing 的 FlowLayout 中?



为什么我的组件不使用 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? 我是否必须在标签或面板上设置某种大小?

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

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

我知道

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

问题是具有所需 FlowLayout

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

相关内容

  • 没有找到相关文章

最新更新