这是一个Swing的基础问题,用下面的代码可以打印出JPanel的大小,它确实是自动适应着JFrame,只要在设置JFrame的Size之后再pane.getSize()就可以了。    JFrame默认采用的是BorderLayout布局(边框布局),frame.getContentPane().add(pane);默认将pane添加在BorderLayout.CENTER(也就是边框布局的正中间),在BorderLayout布局中添加的组件是会充满整个区域,所以JPanel会自动适应着JFrame的大小。import java.awt.BorderLayout;
import javax.swing.JFrame;
import javax.swing.JPanel;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;public class Test {
  private JFrame frame;
  private JPanel pane;  public Test() {
    frame = new JFrame("Test");
    pane = new JPanel();
    frame.getContentPane().add(pane, BorderLayout.CENTER);
    frame.addWindowListener(new WindowAdapter() {
      public void windowClosing(WindowEvent e) {
        System.exit(0);
      }
    });
    frame.setSize(400, 300);
    frame.setVisible(true);
    System.out.println("width = " + pane.getSize().getWidth() + "\n\rheight = " + pane.getSize().getHeight());
  }  public static void main(String[] args) {
    new Test();
  }
}<------ 树欲静而风不止 ------>