【问题标题】:How to set mouseClicked event?如何设置 mouseClicked 事件?
【发布时间】:2016-05-28 15:22:14
【问题描述】:

我正在尝试编写一个程序,当我单击鼠标左键时,它会显示 x 和 y 坐标,但它不起作用。如果我运行程序,控制台会自动显示 x 和 y 坐标,但我想在单击鼠标后查看坐标。

import java.awt.*;
import java.awt.event.*;
import javax.swing.SwingUtilities;

public class Simple {
    public static void main(String[] args){
        Mouse maus = new Mouse();
        maus.mouseClicked(null);
    }
}

第二个文件

import java.awt.*;
import java.awt.event.*;

public class Mouse implements MouseListener {
     public void mouseClicked(MouseEvent e) { 
         double mouseX = MouseInfo.getPointerInfo().getLocation().getX();
         double mouseY = MouseInfo.getPointerInfo().getLocation().getY();
         System.out.println(mouseX+"   "+mouseY);
    }
    @Override
    public void mouseEntered(MouseEvent arg0) {}

    @Override
    public void mouseExited(MouseEvent arg0) {}

    @Override
    public void mousePressed(MouseEvent arg0) {}

    @Override
    public void mouseReleased(MouseEvent arg0) {}   
}

【问题讨论】:

    标签: java mouselistener onmouseclick mousemotionlistener


    【解决方案1】:

    您在代码中所做的是编写MouseListener,但不是将其添加到 GUI 组件中(因此单击鼠标时会激活它),而是您自己调用它。这就是为什么在您启动程序时执行它的原因。

    您需要做的是在您的一个 GUI 组件上使用 addMouseListener 方法,并将您的侦听器注册到它。

    有一个相当好的指南here,也有例子。

    【讨论】:

    • 感谢您的回答。我想从用户窗口区域而不是 GUI 框架中获取坐标。本教程仅向我展示了如何在框架中获得协调。你知道我的意思吗?
    • 我认为您在代码中获取坐标的方式是正确的。唯一的问题是何时调用该方法
    猜你喜欢
    • 2013-06-05
    • 1970-01-01
    • 2011-11-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-09-27
    • 2012-05-02
    • 1970-01-01
    相关资源
    最近更新 更多