为什么我的组件不使用 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 区域是唯一允许这种情况发生的容器。