import java.awt.*;
import javax.swing.*;public class FrameTest extends JFrame{
  private Panel pnl = new Panel();
  private GridLayout lo = new GridLayout(2,2);
  FrameTest(String title){
    super(title);
    pnl.setLayout(lo);
    int i;
    for(i=0;i<4;i++) 
      pnl.add(new Button("OK"));
    this.getContentPane().add(pnl);
    this.setSize(100,150);
    this.setVisible(true);
    this.show();
  }
  public static void main(String[] args){
    new FrameTest("It is a Frame Test.");
  }
}
   
FrameTest.class在系统classpath路径中的话没问题

解决方案 »

  1.   

    path:  C:\jdk1.4\bin;
    calsspath:  .;C:\jdk1.4\lib\tools.jar;C:\jdk1.4\lib\dt.jar;
    我的Jdk1.4安装在C:\jdk1.4
      

  2.   

    Do not use Test.add() use Test.getContentPane().add() instead呵呵,就是这样的,不能直接加,而要加在Frame的内容窗体上,重量容器一般都是这样!
      

  3.   

    编译是没有错误,但是这是运行期错误;或者你用jb7的design可视化工具看看,肯定也会报错!
      

  4.   

    import java.awt.*;
    import javax.swing.*;public class FrameTest extends JFrame{
      private Panel pnl = new Panel();
      private GridLayout lo = new GridLayout(2,2);
      FrameTest(String title){
        super(title);
        pnl.setLayout(lo);
        int i;
        for(i=0;i<4;i++) 
          pnl.add(new Button("OK"));
        //this.add(pnl);-----------this line wrong 
        this.getContentPane().add(pnl);
        this.setSize(100,150);
        this.setVisible(true);
        this.show();
      }  public static void main(String[] args){
        new FrameTest("It is a Frame Test.");
      }
    }
    这样改试一下