Java 如何制作具有多个面板的框架,如下所示

Java 如何制作具有多个面板的框架,如下所示,java,swing,layout,jframe,jpanel,Java,Swing,Layout,Jframe,Jpanel,我尝试过这种布局,但它只显示一个面板。 我需要左面板(面板1)比第二个面板小一点。 它当前正在中心显示菜单和面板1 我尝试了所有的布局示例,但仍然无法显示面板2 我谦恭地等待任何可能有助于解决我的问题的建议 public PrintBillPanel() { GridLayout lay1 = new GridLayout(0, 2, 10, 5); mainPanel = new JPanel(); mainPanel.setLayout(new BoxLayout(m

我尝试过这种布局,但它只显示一个面板。 我需要左面板(面板1)比第二个面板小一点。 它当前正在中心显示菜单和面板1

我尝试了所有的布局示例,但仍然无法显示面板2

我谦恭地等待任何可能有助于解决我的问题的建议

public PrintBillPanel() {
    GridLayout lay1 = new GridLayout(0, 2, 10, 5);
    mainPanel = new JPanel();
    mainPanel.setLayout(new BoxLayout(mainPanel, BoxLayout.X_AXIS));
    printBill = new JPanel();
    showBill = new JPanel();
    printBill.setLayout(lay1);
    mainPanel.add(printBill);
    mainPanel.add(showBill);
    mainPanel.setVisible(false);
}

您没有设置两个面板的大小,因此它们可以是零大小。您也没有做任何会使面板在视觉上清晰可见的事情。我不知道为什么要将主面板设置为不可见。在设置了尺寸和背景以便能够区分面板之后,代码工作了

java.awt.EventQueue.invokeLater(() ->  {
    JFrame frm = new JFrame();
    JPanel mainPanel = new JPanel();
    frm.add(mainPanel);
    BoxLayout layout = new BoxLayout(mainPanel, BoxLayout.X_AXIS);
    mainPanel.setLayout(layout);
    JPanel panel1 = new JPanel();
    panel1.setBackground(Color.red);
    panel1.setPreferredSize(new Dimension(100, 300));
    mainPanel.add(panel1);
    JPanel panel2 = new JPanel();
    panel2.setBackground(Color.blue);
    panel2.setPreferredSize(new Dimension(200, 300));
    mainPanel.add(panel2);
    frm.add(mainPanel);
    frm.pack();
    frm.setVisible(true);
});