Java 一个类中有多个FlowLayouts?

Java 一个类中有多个FlowLayouts?,java,netbeans,flowlayout,Java,Netbeans,Flowlayout,所以我有我的主菜,这是在里面做的 JFrame CF = new JFrame(); CF.setLayout(new BorderLayout()); CF.add(new CarGUI(), BorderLayout.NORTH); // CF.add(new CarGUI(), BorderLayout.SOUTH); //' South FlowLayout ' here ^ CF.setSize(600,400); CF.setV

所以我有我的主菜,这是在里面做的

  JFrame CF = new JFrame();
    CF.setLayout(new BorderLayout());
    CF.add(new CarGUI(), BorderLayout.NORTH);
    // CF.add(new CarGUI(), BorderLayout.SOUTH);
    //' South FlowLayout ' here ^  
    CF.setSize(600,400);
    CF.setVisible(true);
在我的CarGUI课程中,我有:

public class CarGUI extends JPanel {

private CarTaxManager manager;
private JLabel lpLabel;
private JTextField searchField;
private JButton searchButton;

public CarGUI(){
    FlowLayout NorthLayout = new FlowLayout();
    //this.setLayout(new FlowLayout());
    this.setLayout(NorthLayout);
    lpLabel = new JLabel("License Plate");
    searchField = new JTextField(10);
    searchButton = new JButton("Search");

    add(lpLabel);
    add(searchField);
    add(searchButton);
}
所以基本上这里要做的是,我需要做另一个流布局,叫做“SouthLayout”,主要是,我需要把它放到那个布局上。但是,flowlayout必须在CarGUI内部完成。我好像没法让它工作

编辑:

它最终会是什么样子:

所以我总共需要两个FlowLayout。一个在顶部,一个在底部。它们都不包括中间的文本板。 这一切都是在一个主要的边界布局


提前谢谢

听起来是
BorderLayout

鉴于您向我们展示的内容,我已经修改了您的代码,以便在实现它时有一个良好的开端:

public class CarGUI extends JPanel {

private CarTaxManager manager;
private JLabel lpLabel;
private JTextField searchField;
private JButton searchButton;

public CarGUI(){
    setLayout(new BorderLayout());

    JPanel north = new JPanel();
    north .setLayout(new FlowLayout());
    lpLabel = new JLabel("License Plate");
    searchField = new JTextField(10);
    searchButton = new JButton("Search");
    north.add(lpLabel);
    north.add(searchField);
    north.add(searchButton);
    add(north, BorderLayout.NORTH);


    JPanel center = new JPanel();
    center.setLayout(new FlowLayout());
    //TODO add components to center
    add(center, BorderLayout.CENTER);

    JPanel south= new JPanel();
    south.setLayout(new FlowLayout());
    //TODO add components to south
    add(south, BorderLayout.SOUTH);

}
我想a会很好用的。大文本字段可以在中间,上面和下面可以有按钮和菜单。当然,一个简单的方法也可以很好地完成这项工作。下面是一个关于如何使用BorderLayout实现这一点的简单示例

import java.awt.BorderLayout;
import java.awt.Color;
import java.awt.FlowLayout;
import javax.swing.BorderFactory;
import javax.swing.JButton;
import javax.swing.JComboBox;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JTextField;


public class CarGUI extends JFrame {

    public CarGUI() {
        initGUI();
    }

    public void initGUI() {
        setLayout(new BorderLayout());
        setSize(600, 400);
        initNorthGUI();
        initCenterGUI();
        initSouthGUI();
        setVisible(true);
    }

    private void initNorthGUI() {
        JPanel northPanel = new JPanel();
        northPanel.setLayout(new FlowLayout());
        northPanel.add(new JLabel("License Plate"));
        northPanel.add(new JTextField(10));
        northPanel.add(new JButton("Search"));
        add(northPanel, BorderLayout.PAGE_START);

    }

    private void initCenterGUI() {
        JLabel centerPanel = new JLabel("Center");
        centerPanel.setBorder(BorderFactory.createLineBorder(Color.black));
        add(centerPanel, BorderLayout.CENTER);
    }

    private void initSouthGUI() {
        JPanel southPanel = new JPanel();
        southPanel.setLayout(new FlowLayout());
        southPanel.add(new JButton("Some Button"));
        southPanel.add(new JComboBox());
        add(southPanel, BorderLayout.PAGE_END);
    }

    public static void main(String args[]) {
        CarGUI c = new CarGUI();
    }
}

每个单独的“JPanel”或任何其他,都可以有自己的布局管理器。因此,如果您想在应用程序的一部分中使用不同的布局,请添加一个具有所需布局的JPanel。

请参阅。它比默认的要好得多。那么你有什么问题呢?您已经显示了它应该是什么样子,您现在也可以显示它是什么样子吗?请注意,您不需要将新JPanel的布局设置为新的FlowLayout-这是默认设置。我更喜欢显式