2017-09-01 127 views
0

我在尝试使用MouseListener时遇到了一些问题。我创建了一个名为MouseManager的类,它实现了MouseListener,然后我在框架上导入了MouseListener,但是当我点击框架时什么也没有发生。 因此,这里的MouseManager类的代码:MouseListener不起作用

public class MouseManager implements MouseListener { 

@Override 
public void mouseClicked(MouseEvent e) { 
    int mx = e.getX(); 
    int my = e.getY(); 

    System.out.println("Clicked: " + mx + " " + my); 

} 

@Override 
public void mouseEntered(MouseEvent arg0) { 
    // TODO Auto-generated method stub 

} 

@Override 
public void mouseExited(MouseEvent e) { 
    // TODO Auto-generated method stub 

} 

@Override 
public void mousePressed(MouseEvent e) { 
    int mx = e.getX(); 
    int my = e.getY(); 

    System.out.println(mx + " " + my); 

} 

@Override 
public void mouseReleased(MouseEvent e) { 
    int mx = e.getX(); 
    int my = e.getY(); 

    System.out.println("Released: " + mx + " " + my); 

} 

}

,然后下面是我用它来实现MouseManager类

MouseManager MouseMan = new MouseManager(); 
Window.frame.addMouseListener(MouseMan); 

的代码,但我赛义德什么也没有发生之前和控制台不显示消息; 我试着将窗口的焦点设置为false,但它继续不起作用。 对不起,我的英语不好。

回答

0

您必须在blankArea和面板上注册鼠标事件。您应该阅读here了解更多详情。

这里是你必须做的事情的一部分:

public class MouseManager implements MouseListener { 
    Frame frame = new Frame(); 
    frame.addMouseListener(this); 
    .... 
1

,你必须注册在同一类事件只有IE浏览器的MouseManager类使用

Frame objFrame = new Frame("MouseListener Demo"); 

objFrame.addMouseListener(this); 

这里这指的是您当前班级的实例。 因为您不直接扩展框架类,您将不得不使框架的对象。

然后只是打电话让你的工作完成的对象。