"mousePressed/mouseClicked" 出于任何原因无法正常工作

"mousePressed/mouseClicked" is not working for any reason

所以基本上,我在做一个打砖块,我希望当我点击我的程序时,一个动作开始。

到目前为止,这是我的代码:

canvas.addMouseMotionListener(new MouseAdapter() {
        
        public void mousePressed(MouseEvent e) {
            super.mousePressed(e);
            player.mousePressed(e);
        }
        
        @Override
        public void mouseMoved(MouseEvent e) {
            super.mouseMoved(e);
            player.mover(e.getX());
        }   
        
        
        
    });
    

mouseMoved 正在运行。

Player.mousePressed =

public void mousePressed(MouseEvent e) {
    this.setSpace(true);
    switch (e.getButton()) {
        case MouseEvent.BUTTON1 : space = true; break;
    }
    //This is only for test 
    System.out.println(e.getButton());
    if (this.isSpace() == true) {
        //This is only for test 
        System.out.println("test");
    }
}

如果这可行,它应该给我发送两个 syso,但它没有发送。我也用 MouseClicked 试过了,但还是不行。

canvas.addMouseMotionListener(new MouseAdapter() {
    
    public void mousePressed(MouseEvent e) {

Component.addMouseMotionListener 声明为:

public void addMouseMotionListener​(MouseMotionListener l)

MouseMotionListener 扩展 EventListener 并添加方法 mouseDraggedmouseMoved 但不添加 mousePressed.

所以你想要 addMouseListener 以及 addMouseMotionListener​MouseAdapter 实现两个不同的接口已经成功了。