Java JPanel中的组件不会自动更改行

Java JPanel中的组件不会自动更改行,java,swing,jpanel,flowlayout,Java,Swing,Jpanel,Flowlayout,结果是,PanelSelectOperationFile面板中的五个组件位于同一行,超出了窗口的宽度。我知道JPanel的默认布局是flowlayout,我希望组件会放在下一行,而上一行没有空间。我试图找出问题所在,但我无法不要使用面板SelectingOperationingFile面板。只需将组件添加到正在扩展的JPanel 不能嵌套流布局。原因如下: 如何避免这种扩展?因为panelSelectingOperatingFile是第一个面板,我会在JPanel中添加其他面板。谢谢,我会仔细查

结果是,PanelSelectOperationFile面板中的五个组件位于同一行,超出了窗口的宽度。我知道JPanel的默认布局是
flowlayout
,我希望组件会放在下一行,而上一行没有空间。我试图找出问题所在,但我无法

不要使用
面板SelectingOperationingFile
面板。只需将组件添加到正在扩展的
JPanel

不能嵌套流布局。原因如下:


如何避免这种扩展?因为
panelSelectingOperatingFile
是第一个面板,我会在JPanel中添加其他面板。谢谢,我会仔细查看的,如果我还有问题,我可以在这里再问你一次吗?也许你应该尝试更复杂的布局,比如MigLayout,或者是的,我会尽力帮助你。非常感谢,而且我已经知道为什么我不能嵌套
import java.awt.BorderLayout;
import java.awt.FlowLayout;
import javax.swing.*;

public class FileCutter
{
    public static void main(String[] args)
    {
        CutterWindow cw = new CutterWindow();
        cw.setResizable(false);
        cw.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        cw.setVisible(true);
    }
}

class CutterWindow extends JFrame
{
    private JTabbedPane tabbedPane = new JTabbedPane();

    public static final int DEFAULT_WIDTH = 470;
    public static final int DEFAULT_HEIGHT = 480;
    public CutterWindow()
    {
        this.setSize(DEFAULT_WIDTH, DEFAULT_HEIGHT);
        tabbedPane.add("File Cut",new FileCutPanel());
        this.add(tabbedPane);
    }

}

class FileCutPanel extends JPanel
{   
    private JLabel lblFileName =  new JLabel("File Name:");
    private JTextField txtFileName = new JTextField();
    private JLabel lblFileSize = new JLabel("File Size:");
    private JTextField txtFileSize = new JTextField();
    private JButton btnViewFiles = new JButton("...");

    private JPanel panelSelectOperatingFile = new JPanel();

    public FileCutPanel()
    {   
        panelSelectOperatingFile.setLayout(new FlowLayout());
        panelSelectOperatingFile.add(lblFileName);
        txtFileName.setColumns(20);
        txtFileName.setEditable(false);
        panelSelectOperatingFile.add(txtFileName);
        panelSelectOperatingFile.add(btnViewFiles);
        panelSelectOperatingFile.add(lblFileSize);
        panelSelectOperatingFile.add(txtFileSize);
        txtFileSize.setColumns(20);
        txtFileSize.setEditable(false);

        this.add(panelSelectOperatingFile);
    }
}