改成这样:
import java.awt.*;
import java.awt.event.*;
import java.applet.*;public class MouseEvents extends Applet{
   String msg = "";
   public void init(){
    addMouseListener(new s());
    }
    
   public void paint(Graphics g){
g.drawString(msg,0,19);
   }
class s extends MouseAdapter{    
 public void mouseClicked (MouseEvent e){
msg = "ddddddd";
repaint();
}
   }
}
楼主的代码很不规范!!!

解决方案 »

  1.   

    我就是要把s类放在MouseEvents类的外面,不是作为内部类,有没有办法,我是刚开始学java,不规范是很正常的,别问我为什么要这样做,我就是要这么写,谁有办法,我看到书上的例子上可以addMouseListener(new s(this));但一到实际上就出错,不知道为什么
      

  2.   

    class s extends MouseAdapter{
             MouseEvents bbb;
             public void s (MouseEvents aaa)
             {this.bbb=aaa;}      
     public void mouseClicked (MouseEvent e){
    bbb.msg = "ddddddd";
    bbb.repaint();
    }
       }
    你这个类里也没有public s(Applet myapplet)
    的构造函数,怎么可以这样。
      

  3.   

    class s extends MouseAdapter{
             public s(Applet myapplet){
    }
             MouseEvents bbb;
             public void s (MouseEvents aaa)
             {this.bbb=aaa;}      
     public void mouseClicked (MouseEvent e){
    bbb.msg = "ddddddd";
    bbb.repaint();
    }
       }
    这样应该可以了。
      

  4.   

    谢谢,这样写就可以了,原来是构造函数不能有返回值
    import java.awt.*;
    import java.awt.event.*;
    import java.applet.*;public class MouseEvents extends Applet{
       String msg = "";
       public void init(){
        addMouseListener(new s(this));
        }
        
       public void paint(Graphics g){
    g.drawString(msg,0,19);
       }
    }class s extends MouseAdapter{
    MouseEvents bbb; 
    public s(MouseEvents bbb){
      {this.bbb=bbb;}      
     
    }
          
       public void mouseClicked (MouseEvent e){
    bbb.msg = "ddddddd";
    bbb.repaint();
    }
       }
      

  5.   

    构造函数不能有返回类型,搂主写的public void s(MouseEvents aaa)由于有返回类型void所以不是构造函数。要改成public s(MouseEvents aaa)。不是内部类和外部类的区别。也不需要将MouseEvents aaa改成Applet的。
    多说一点,和本贴无关:加入了非默认的构造函数,系统就不会为你加入默认构造函数了。