Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/337.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在Eclipse Java中未检测到鼠标输入_Java_Swing_Jpanel_Mouseevent_Mousemotionlistener - Fatal编程技术网

在Eclipse Java中未检测到鼠标输入

在Eclipse Java中未检测到鼠标输入,java,swing,jpanel,mouseevent,mousemotionlistener,Java,Swing,Jpanel,Mouseevent,Mousemotionlistener,我正在制作一个需要用户从鼠标输入的程序,所以我制作了一个鼠标类来扩展MouseAdapter。当通过在窗口中单击来测试它时,它什么也没做。代码如下所示。谢谢你的帮助 主课 public class Main extends JFrame { private static final long serialVersionUID = 1L; public Main() { add(new Window()); setDefaultCloseOpe

我正在制作一个需要用户从鼠标输入的程序,所以我制作了一个鼠标类来扩展MouseAdapter。当通过在窗口中单击来测试它时,它什么也没做。代码如下所示。谢谢你的帮助

主课

public class Main extends JFrame {

    private static final long serialVersionUID = 1L;

    public Main() {
        add(new Window());

        setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        setSize(720, 480);
        setLocationRelativeTo(null);
        setTitle("Mouse Input");
        setVisible(true);
        setResizable(false);
    }

    public static void main(String args[]) {
        new Main();
    }

}
窗口类

public class Window extends JPanel implements ActionListener {

    private static final long serialVersionUID = 1L;

    public Window() {       
        addMouseMotionListener(new Mouse());

        Timer timer = new Timer(10, this);
        timer.start();

    }

    @Override
    public void actionPerformed(ActionEvent arg0) {

    }

}
老鼠课

class Mouse extends MouseAdapter{

    public void mouseClicked(MouseEvent e) {
        System.out.println("Clicked");
    }

    public void mouseDragged(MouseEvent e) {
        System.out.println("Dragged");
    }

}

它在单击时不起任何作用,因为您已将其作为MouseMotionListener添加到JPanel中,而不是作为MouseListener。您还需要通过
addMouseListener(…)
方法将鼠标实例传递到JPanel中,以便发生MouseListener事件

i、 e

addMouseMotionListener(新鼠标()); addMouseListener(新MouseListener(){


我刚刚意识到,它在被拖的时候什么也做不了。
public Window() {
  Mouse myMouse = new Mouse();
  addMouseMotionListener(myMouse); // you already have this
  addMouseListener(myMouse);  // **** add this!! ****
        @Override
        public void mouseReleased(MouseEvent arg0) {
            // TODO Auto-generated method stub

        }

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

        }

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

        }

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

        }

        @Override
        public void mouseClicked(MouseEvent arg0) {
            System.out.println("asdasd");

        }
    });