为什么我的组件不使用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吗?我是否必须在标签或面板上设置某种尺寸?
答案 0 :(得分:6)
那是因为FlowLayout
没有。我知道,它很糟糕。
但是,您可以查看WrapLayout这是解决此问题的方法
答案 1 :(得分:0)
我知道这是一个老问题,但是在尝试解决相同问题时偶然发现了它。 FlowLayout不会包装其子组件并不是完全正确的。
问题在于,具有所需FlowLayout的JPanel必须位于另一个容器中,该容器将重新调整大小,并且 允许FlowLayout也重新调整大小并因此进行包装。以我的经验,BorderLayout的CENTER区域是唯一允许这种情况发生的容器。