我们正在开展一个项目,在该项目中遇到了在同一个 JFrame 上包含两个以上面板的问题。我们想要的是一个面板在另一个之上。
社区能否提供一个示例来实现这一点,或者向我推荐与我们的 Java Swing 需求相关的优秀教程或指南?
我们正在开展一个项目,在该项目中遇到了在同一个 JFrame 上包含两个以上面板的问题。我们想要的是一个面板在另一个之上。
社区能否提供一个示例来实现这一点,或者向我推荐与我们的 Java Swing 需求相关的优秀教程或指南?
假设您希望将两个面板添加到单个框架中:
为您的父 JFrame 设置布局并添加两个面板。类似于以下内容
JFrame frame = new JFrame();
//frame.setLayout(); - Set any layout here, default will be the form layout
JPanel panel1 = new JPanel();
JPanel panel2 = new JPanel();
frame.add(panel1);
frame.add(panel2);
假设您想在另一个面板上添加一个面板
JFrame frame = new JFrame();
JPanel panel1 = new JPanel();
JPanel panel2 = new JPanel();
frame.add(panel1);
panel1.add(panel2);
在 JFrame 上添加的面板数量没有限制。你应该明白,从更高的层次上看,它们都是容器。
如果您希望每个框架/面板的大小相同,请使用 GridLayout,网格为 1(列)和 2(行)
Frame myFrame;
GridLayout myLayout = new GridLayout(2,1);
myFrame.setLayout(myLayout);
Panel p1;
Panel p2;
myFrame.add(p1);
myFrame.add(p2);
如果面板大小不同,请使用 BorderLayout.... 将上框架设置为“北”,将下框架设置为“南”或“中心”
Frame myFrame;
myFrame.setLayout(new BorderLayout() );
Panel p1;
Panel p2;
myFrame.add(p1, BorderLayout.NORTH);
myFrame.add(p2, BorderLayout.CENTER);
//您也可以使用卡片布局,使您可以在主面板上添加多个卡片面板。
CardLayout cl;
JPanel main,one,two,three;
JButton button1,button2;
cl = new CardLayout();
main.setLayout(cl);
main.add(one,"1");
main.add(two,"2");
main.add(three,"3");
cl.show(main,"1");
public void actionPerformed(ActionEvent e){
if(e.getSource() == button1)
cl.show(main,"2");
else if(e.getSource() == button2)
cl.show(main,"3");
}