回 帖 发 新 帖 刷新版面

主题:关于内部类作为事件监听器的出错问题

import java.awt.*;
import java.awt.event.*;
public class TestInnerListener{
    Frame f=new Frame("测试内部类事件窗口");
    TextField tf=new TextField(30);
    
    public TestInnerListener(){
        f.add(new Label("请按下鼠标左键并拖动"),"North");
        f.add(tf,"South");
        
        f.setBackground(new Color(120,175,175));
        f.addMouseMotionListener(new InnerMonitor());
        f.addMouseListener(new InnerMonitor());
        f.setSize(300,200);
        f.setVisible(true);
    }
    
    public static void main(String args[]){
        Object t=new TestInnerListener();
    }
    
    
    
    private  class InnerMonitor implements MouseMotionListener,MouseListener{
        public void mouseDregged(MouseEvent e){
            String s="鼠标拖动的位置("+e.getX()+","+e.getY()+")";
            tf.setText(s);
            
        }
        
        public void mouseEnterd(MouseEvent e){
            String s="鼠标已经进入窗体";
            tf.setText(s);
        }
        
        public void mouseExited(MouseEvent e){
            String s="鼠标已经移出窗体";
            tf.setText(s);
        }
        public void MouseMoved(MouseEvent e){}
        public void MousePressed(MouseEvent e){}
        public void MouseClicked(MouseEvent e){}
        public void MouseReleased(MouseEvent e){}    
        
    }
    
}





编译的时候出错了,请各位能告诉我问题出现在哪里吗?谢谢~!!!![em2]

回复列表 (共2个回复)

沙发

private  class InnerMonitor implements MouseMotionListener,MouseListener{
        public void mouseDregged(MouseEvent e){   //应为mouseDragged写错了
            String s="鼠标拖动的位置("+e.getX()+","+e.getY()+")";
            tf.setText(s);
            
        }
        
        public void mouseEnterd(MouseEvent e){
            String s="鼠标已经进入窗体";
            tf.setText(s);
        }
        
        public void mouseExited(MouseEvent e){
            String s="鼠标已经移出窗体";
            tf.setText(s);
        }
        public void MouseMoved(MouseEvent e){}//mouseMoved中第一M应为小写,下面一样
       public void MousePressed(MouseEvent e){}
        public void MouseClicked(MouseEvent e){}
        public void MouseReleased(MouseEvent e){}    
        
    }
你的程序还有一个问题,要定义关闭按钮自动关闭整个应用程序,否则程序无法结束

板凳

你很多单词都没写对啊,比如mouseDregged应该写成mouseDragged,还有就是如一楼所说的要写个退出函数

我来回复

您尚未登录,请登录后再回复。点此登录或注册