如何在另一个类中调用带有参数鼠标事件e的方法?

时间:2016-07-01 01:24:08

标签: java

我编写下面的代码并希望在另一个类中调用mousepress方法,但我得到错误来定义参数mouseevent我调用它的位置,但是当我定义变量mouseevent时出现NullPointerException错误{ {1}}。

请帮帮我。

e

1 个答案:

答案 0 :(得分:-1)

这是一个简短的演示,可以帮助您入门。 基本上,您在类中创建需要响应鼠标单击(Moo)的侦听器,并将其添加到生成鼠标事件的类中的组件中:

import java.awt.Dimension;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;
import java.awt.event.MouseListener;

import javax.swing.JButton;
import javax.swing.JFrame;

public class Foo extends JFrame {

    private JButton btn;

    Foo(){

        super("Foo frame");
        setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);
        setPreferredSize(new Dimension(200,100));
        setLocationRelativeTo(null);

        btn = new JButton("Click Me");
        getContentPane().add(btn);

        validate();
        pack();
    }

    JButton getBtn() {
        return btn;
    }

    public static void main(String[] args)  {

        Foo foo = new Foo();
        Moo moo = new Moo();
        foo.getBtn().addMouseListener(moo.getMouseListener());
        foo.setVisible(true);
    }
}

class Moo {

    Moo() {}

    MouseListener getMouseListener() {

        return new MouseAdapter() {

            @Override
            public void mousePressed(MouseEvent e) {

                System.out.println("Mouse pressed ! ");
            }
        };
    }
}

如果您需要更多说明,请不要犹豫。