继续从this question开始,我在MouseMotionListener中实现了一个JPanel,这样我就可以跟踪鼠标事件来传递给包含在其中的对象。
这不起作用,所以我用MouseMotionListener实现了一个完全干净的MouseMotionListener(它没有我的游戏面板上的其他东西),但仍然不能工作。它只是在一个非常简单的带有一个JFrame的FlowLayout中设置的。
我用错了吗?我怎么能触发鼠标事件?
JPanelMouseMotion类:
import java.awt.event.MouseEvent;
import java.awt.event.MouseMotionListener;
import javax.swing.JPanel;
public class JPanelMouseMotion extends JPanel implements MouseMotionListener {
private static final long serialVersionUID = 1L;
public JPanelMouseMotion() {
super();
}
@Override
public void mouseDragged(MouseEvent e) {
}
@Override
public void mouseMoved(MouseEvent e) {
System.out.println(e.getX() + " / " + e.getY());
}
}发布于 2015-10-02 13:28:48
侦听器从未被调用,因为它从未被注册过。您应该打电话给addMouseMotionListener注册它。
public class JPanelMouseMotion extends JPanel implements MouseMotionListener {
private static final long serialVersionUID = 1L;
public JPanelMouseMotion() {
super();
addMouseMotionListener(this); // register this JPanel as a Listener
}
@Override
public void mouseDragged(MouseEvent e) {
}
@Override
public void mouseMoved(MouseEvent e) {
System.out.println(e.getX() + " / " + e.getY());
}
}https://stackoverflow.com/questions/32908219
复制相似问题