import  java.awt.*;
import  java.awt.event.*;
class   Car   extends  Frame{
   {   public   static   void  main(String   args[])
        {  
           setLayout(new  FlowLayout());
          Button  b1=new     Button("退出");
          myCanvas   canvas=new   myCanvas();
       this.add(b1);  this.add(canvas);
          b1.addActionListener(this);
         this.addWindowLinster(new    WindowAdapter()
            {   public     void   actionPerformed(ActionEvent    e)
                {    if(e.getSource()==b1)
                         System.exit(0);
                 }
            });
        }
 }
class   myCanvas  extends   Canvas
   {   myCanvas(){}
       public   void   paint(Graphics  g)
      {
          g.fillRect(20,30,60,20);
           g.setColor(Color.red);
          g.fillOval(30,50,15,15);
          g.setColor(Color.blue);
          g.fillOval(50,50,15,15);
          g.setColor(Color.blue);
          g.drawLine(0,65,200,65);
        }
}

解决方案 »

  1.   

    语法错误:第3行一个‘{’和  第4行的‘{’
    main中的内容不可以直接用当前类的方法
    因为main函数是静态的,里面必须实例化一个类来用才行类中没有继承ActionListener接口
    也没有实现其接口的方法
    b1.addActionListener(this);
    public void actionPerformed(ActionEvent e) {}需要写构造函数
    Button b1最好在构造函数外定义myCanvas类的命名规则不对 应该是MyCanvas 各个单词的首字母应该用大写的