Java 在JFrame中包含两个以上的面板?
我们在一个项目中遇到了一个问题,在同一个JFrame上包含两个以上的面板。我们想要的是一个面板在另一个上面Java 在JFrame中包含两个以上的面板?,java,swing,layout-manager,Java,Swing,Layout Manager,我们在一个项目中遇到了一个问题,在同一个JFrame上包含两个以上的面板。我们想要的是一个面板在另一个上面 社区能否提供一个ho示例来实现这一点,或者让我参考与Java Swing需求相关的好教程或指南?假设您希望在一个框架中添加两个面板: 为父JFrame设置布局并添加两个面板。类似于下面的内容 JFrame frame = new JFrame(); //frame.setLayout(); - Set any layout here, default will be the form la
社区能否提供一个ho示例来实现这一点,或者让我参考与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上添加的面板数量没有限制。您应该了解,从更高的层次上看,它们都是容器。如果希望每个框架/面板的大小相同,请使用网格布局,网格为1(列)和2(行) 如果面板大小不同,请使用BorderLayout。。。。将上部框架设置为“北”,下部框架设置为“南”或“中”
//您还可以使用卡片布局,这使您能够在主面板上添加多个卡片面板
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");
}
你在框架中使用了什么布局管理器(FlowLayout、BorderLayout、GridLayout、GroupLayout等)?但这里的问题是默认布局是“FlowLayout”,这不会给他想要的结果——好吧,我有点误读了你文章的第一部分,但这里需要的是非常具体的布局,而不仅仅是“设置布局”
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");
}