将多个 jPanel 添加到 jFrame

2022-09-03 17:46:49

我想并排向JFrame添加两个jPanel。两个框是jpanels,外框是jframeenter image description here

我有这些代码行。我有一个名为 seatinPanel 的类,它扩展了 JPanel,在这个类中,我有一个构造函数和一个称为 utilityButtons 的方法,它返回一个 JPanel 对象。我希望实用程序Buttons JPanel位于右侧。我在这里的代码只在运行时显示utillityButtons JPanel。

public guiCreator()
    {
        setTitle("Passenger Seats");
        //setSize(500, 600);
        setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

        Container contentPane = getContentPane();

        seatingPanel seatingPanel1 = new seatingPanel();//need to declare it here separately so we can add the utilityButtons
        contentPane.add(seatingPanel1); //adding the seats
        contentPane.add(seatingPanel1.utilityButtons());//adding the utility buttons

        pack();//Causes this Window to be sized to fit the preferred size and layouts of its subcomponents
        setVisible(true);  
    }

答案 1

我推荐的最灵活的布局管理器是BoxLayout

您可以执行以下操作:

JPanel container = new JPanel();
container.setLayout(new BoxLayout(container, BoxLayout.X_AXIS));

JPanel panel1 = new JPanel();
JPanel panel2 = new JPanel();

//panel1.set[Preferred/Maximum/Minimum]Size()

container.add(panel1);
container.add(panel2);

然后将容器添加到对象到框架组件。


答案 2

您需要继续阅读并了解Swing必须提供的布局管理器。在你的情况下,知道JFrame的内容Pane默认使用BorderLayout会有所帮助,你可以添加更大的中心JPanel BorderLayout.CENTER和另一个JPanel BorderLayout.EAST。可在此处找到更多内容:在容器中布置组件

编辑1
Andrew Thompson已经在您之前的帖子中向您展示了布局管理器的代码:为什么我的按钮没有显示出来?同样,请阅读教程以更好地理解它们。


推荐