public class cla extends Frame
{
int count = 0;
......
addMouseMotionListener(new MouseMoveHandler1());
}public class MouseMoveHandler1 implements MouseMotionListener
{
......
}比如,第一个类创建了一个窗口,并添加了鼠标移动监听器,如何在第二个类中修改第一个类中的count属性?

解决方案 »

  1.   


    public class MouseMoveHandler1 implements MouseMotionListener
    {
       //需要实现的接口
       public void doSomething();
    }
    第一个类修改为:public class cla extends Frame
    {
    int count = 0;
    ......
    addMouseMotionListener(new MouseMoveHandler1(){
       public void doSomething(){
           count++//这里改变count属性
       }});
    }
      

  2.   

    楼上是写了一个匿名内部类。
    也可以把监听写在你继承Frame的这个类中,作为一个内部类。你的程序可以这样写public class cla extends Frame
    {
        int count = 0;
        ......
        public cla()
        {
             addMouseMotionListener(new MouseMoveHandler1()); //注意要写在方法中,我这里直接写在构造器里了
         }    //作为cla的内部类
          public class MouseMoveHandler1 implements MouseMotionListener
          {
             //由于count是全局变量,所以可以在这里面修改count
             ......
           }
    }