Java-GUI-鼠标监听

GUI-鼠标监听

​ 鼠标监听:使用鼠标监听的适配器(MouseAdapter),不用重写所有方法。

public class Application {
    public static void main(String[] args) {
        new MyFrame();
    }
}

class MyFrame extends Frame{

    public MyFrame(){
        init();
    }

    public void init() {

        // 设置窗口大小,坐标
        setBounds(200, 200, 400, 400);

        // 添加鼠标监听按钮
        addMouseListener(new MouseAdapter() {
            @Override
            public void mousePressed(MouseEvent e) {
                System.out.println("鼠标按下");
            }

            @Override
            public void mouseClicked(MouseEvent e) {
                System.out.println("鼠标点击:鼠标按下和放开");
            }

            @Override
            public void mouseReleased(MouseEvent e) {
                System.out.println("鼠标放开");
            }
        });

        // 关闭窗口
        addWindowListener(new WindowAdapter() {
            @Override
            public void windowClosing(WindowEvent e) {
                // 终止程序
                System.exit(0);
            }
        });
        // 设置窗口显示
        setVisible(true);
    }

}

鼠标监听和画笔的结合

​ 实现点击显示一个点

public class Application {
    public static void main(String[] args) {
        new MyFrame();
    }
}

class MyFrame extends Frame{

    List points;

    public MyFrame (){
        init();
    }

    public void init() {
        // 设置窗体的位置以及大小
        setBounds(200, 200, 500, 600);

        // 存储每个点
        points = new ArrayList();

        // 监听鼠标点击
        addMouseListener(new MyMouseListener());

        // 实现关闭按钮
        addWindowListener(new WindowAdapter() {
            @Override
            public void windowClosing(WindowEvent e) {
                System.exit(0);
            }
        });

        // 设置窗体可见
        setVisible(true);
    }

    @Override
    public void paint(Graphics g) {
        // 设置画笔颜色
        g.setColor(Color.BLUE);
        // 获取点存储
        Iterator it = points.iterator();
        // 遍历点存储
        while(it.hasNext()) {
            // 获取点
            Point point = (Point)it.next();
            // 获取点坐标
            int x = (int)point.getX();
            int y = (int)point.getY();
            // 画点
            g.fillOval(x, y, 10, 10);
        }
    }

    class MyMouseListener extends MouseAdapter{
        @Override
        public void mousePressed(MouseEvent e) {
            // 获取当前窗口
            MyFrame frame = (MyFrame)e.getSource();
            // 获取鼠标点击的点
            Point point = frame.getMousePosition();
            // 把当前的点保存到存储点中
            points.add(point);
            // 重画,才能实现每个点都被画
            frame.repaint();
        }
    }

}

注意:必须得重画,才能实现点击的每个点被画出来,否则不显示。

上一篇:设置日期和时间


下一篇:AWT-Frame