结构是这样的:
JFrame aWindow=new JFrame();
Contaner content=aWindow.getContentPane();
JPanel panel1=new JPanel();//需指定大小JPanel panel2=new JPanel();//需指定大小panel.add(panel2);
content.add(panel1);
谢谢!

解决方案 »

  1.   

    用setPreferredSize()来指定大小是可以的,
    之所以你感觉不到,是因为你只能看见jframe窗口大小的范围,超过jframe窗口
    范围的jpanel部分,则不可见。
    如果你给你的jpanel加到一个JScrollPane,你就可以感觉到jpanel的大小变化了。
      

  2.   

    与布局管理器有关。JFrame的默认布局管理器是BorderLayout,JPanel的默认布局管理器是FlowLayout。
      

  3.   

    已经给JPanel加了一个有颜色的边框,不管怎么改都不能改变
    它的大小。还请指点迷径。谢谢!
      

  4.   

    在layout显示jpanel时,并不是用jpanel的默认大小。
    你试试下面代码
    import java.awt.*;
    import java.awt.event.*;
    import javax.swing.*;
    import javax.swing.border.*;public class Test1 extends JFrame {
        
        public JLabel bl = new JLabel(" b1 ");
        JPanel editor;
        Point lastLocation;
        JScrollPane scroller;    public Test1() {        Container ls = getContentPane();
    ls.setLayout(new BorderLayout());
            editor = new JPanel();
            editor.setPreferredSize(new Dimension(300,400));
            editor.setLayout(null);
            editor.setBorder(BorderFactory.createLineBorder(Color.black));        JPanel xx = new JPanel();
            xx.setPreferredSize(new Dimension(30,40));
            xx.setBounds(100,100,100,200);
            xx.setBorder(BorderFactory.createLineBorder(Color.black));
            editor.add(xx);
            
            scroller = new JScrollPane(editor);
            ls.add("Center", scroller);
          
        }        public static void main(String[] args) {
                Test1 frame = new Test1();
                frame.addWindowListener(
                new WindowAdapter() {
                    public void windowClosing(WindowEvent e) {
                        System.exit(0);
                    }
                });
                frame.setSize(300, 400);
                frame.setVisible(true);
        }
    }
      

  5.   

    谢谢阿明兄。原来关健就在panel.setLayout(null);