Java 为什么不';t我的部件用Swing包装';什么是流程布局?

Java 为什么不';t我的部件用Swing包装';什么是流程布局?,java,swing,flowlayout,Java,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包装在这个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
没有。我知道,这很糟糕


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

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


问题是,具有所需FlowLayout的JPanel必须位于另一个容器内,该容器将调整大小,并允许FlowLayout也调整大小,从而进行包装。根据我的经验,BorderLayout的中心区域是唯一允许这种情况发生的容器

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


问题是,具有所需FlowLayout的JPanel必须位于另一个容器内,该容器将调整大小,并允许FlowLayout也调整大小,从而进行包装。根据我的经验,BorderLayout的中心区域是唯一允许这种情况发生的容器

我的猜测是它与
面板的父容器有关。我的猜测是它与
面板的父容器有关+1吃力。我已经开始使用MigLayout,它非常棒+1吃力。我已经开始使用MigLayout,它非常棒。