我试过这个布局,但它只显示了一个面板。 我需要左侧面板(面板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);
}
答案 0 :(得分:0)
您没有设置任何一个面板的尺寸,因此它们可以为零尺寸。您也没有做任何会使面板在视觉上与众不同的事情。我不确定你为什么要将mainPanel设置为不可见。设置尺寸和背景后,可以区分面板,代码可以正常工作。
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);
});