多个Panel不能显示

来源:百度知道 编辑:UC知道 时间:2024/06/20 11:36:40
//不知道为什么不能把多个panel全部显示出来,谁能说下原因和解决办法
import java.awt.*;
public class test {
public static void main(String[] args) {
Frame x = new Frame("java Frame");
BorderLayout b = new BorderLayout();
Panel p1 = new Panel(b);
Panel p2 = new Panel(b);
Panel p3 = new Panel(b);
Panel p4 = new Panel(new GridLayout(2,2));
for(int i=1;i<=4;i++)p4.add(new Button("Button"));
x.add(p4,BorderLayout.CENTER);
x.add(p1,BorderLayout.WEST);
x.add(p2,BorderLayout.NORTH);
x.add(p3,BorderLayout.EAST);
p1.add(new Button("Button"), BorderLayout.NORTH);
p1.add(new Button("Button"), BorderLayout.SOUTH);
p2.add(new Button("Button"), BorderLayout.NORTH);
p2.add(new Button("Button"), BorderLayout.SOUTH);
p3.add(new Button("Button"), BorderLayout.NORTH);
p3.add(new Button("Button"), BorderLayout.SOUTH);
x.pack();

除了中间的Panel,其它的都设置一下,比如:
p1.setPreferredSize(new Dimension(宽度,高度));
....

原因自己去看API文档,方法如上

import javax.swing.* ;

public class test
{
public static void main(String[] args)
{
JFrame frame=new JFrame("窗口") ;
frame.setResizable(false) ;//设置不可改变大小,这三个是第一步
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);//设置关闭窗口动作

JPanel p[]=new JPanel[5] ;
for(int i=0;i<5;i++) p[i]=new JPanel() ;

frame.getContentPane().add(p[0],"Center") ;
frame.getContentPane().add(p[1],"West") ;
frame.getContentPane().add(p[2],"East") ;
frame.getContentPane().add(p[3],"North") ;
frame.getContentPane().add(p[4],"South") ;

p[0].add(new JLabel("中")) ;
p[1].add(new JLabel("西")) ;
p[2].add(new JLabel("东")) ;
p[3].add(new JLabel("北")) ;
p[4].add(new JLabe