没有main方法在你的代码中添加main方法,然后在main方法中写下面的代码:Pane2 p = new Pane2();

解决方案 »

  1.   

    class PanelWithOval extends Panel 
    {
         public void paint(Graphics g) {
              System.out.println("aaa!");
              g.setColor(Color.blue);
              g.drawOval(40, 40, 100, 100);
              g.drawString("It is a Oval",60,80);
         }
         public static void main(String[] args){
              Graphics gr=new Graphics();
              PanelWithOval p=new PanelWithOval();
              p.paint(gr);
    }
      

  2.   

    class PanelWithOval extends Panel 
    {
         public void paint(Graphics g) {
              System.out.println("aaa!");
              g.setColor(Color.blue);
              g.drawOval(40, 40, 100, 100);
              g.drawString("It is a Oval",60,80);
         }
         public static void main(String[] args){
              Graphics gr=new Graphics();
              PanelWithOval p=new PanelWithOval();
              p.paint(gr);
         }
    }上面少写了“}”任何一个java运行的class必须有main函数
      

  3.   

    你还是再看一下关于java布局管理器方面的书吧
    因为你用的是Flowlayout,所以由于它用缺省Flowlayout的布局,所以你看不见应该有的结果
    我给你改的时候用的是borderlayout布局,布到Center就可以了
    改动如下:
    Pane2.java
    Pane2()
    {
    Frame win1 = new Frame("Pane2");
                      //win1.setLayout(new FlowLayout());
                      win1.setLayout(new BorderLayout());
                  win1.addWindowListener(this);
    //win1.add(myP);
                      win1.add(myP,BorderLayout.CENTER);
                      win1.setSize(200,200);
    win1.setVisible(true);
    }
      

  4.   

    我觉得根本原因有可能是paint()方法重载得不好。建议看一下原来的paint()方法再重载。