首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >MouseListener多次调用

MouseListener多次调用
EN

Stack Overflow用户
提问于 2013-11-14 15:15:11
回答 3查看 7.1K关注 0票数 4

我使用这段代码来获取作为jLable图标放置的图像的X和Y坐标。这个获得坐标的方法是由对这个question的回答提出的。

代码语言:javascript
复制
private void lblMapMouseClicked(java.awt.event.MouseEvent evt) {                                    
            lblMap.addMouseListener(new MouseAdapter() {
                public void mouseClicked(MouseEvent e) {
                    double X = e.getX();
                    double Y = e.getY();
                    System.out.println("X: " + X + "Y: " + Y );
                }
            });
    }   

当我运行这个public void mouseClicked(MouseEvent e) { }时,它会被多次调用。准确地说,我点击图片的次数。

如果我第三次点击它,System.out.println行中的X和Y值会被打印3次。

当我点击的次数增加时,它就会增加。你们谁能解释一下为什么会发生这种事?我怎样才能修好它呢?)

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2013-11-14 15:26:19

问题是,当单击发生时,您将一次又一次地添加一个新的侦听器。

代码语言:javascript
复制
private void lblMapMouseClicked(MouseEvent evt) 
{
    lblMap.addMouseListener(new MouseAdapter()
    {
        ...

相反,请将代码更改为以下代码。

代码语言:javascript
复制
private void lblMapMouseClicked(MouseEvent e)
{
    double X = e.getX();
    double Y = e.getY();
    System.out.println("X: " + X + "Y: " + Y);
}

它应该能解决问题。

希望这能有所帮助。

票数 7
EN

Stack Overflow用户

发布于 2013-11-14 15:20:31

每次点击图片时,都会添加新的鼠标侦听器。也要做

代码语言:javascript
复制
 System.out.println(this)

检查鼠标监听器的哪个实例实际上是打印出来的。

票数 5
EN

Stack Overflow用户

发布于 2020-01-27 10:06:22

以上代码的问题是,每次单击图像,您都会创建新的鼠标事件。

代码语言:javascript
复制
// Create a Mouse pressed Event
mouseLis = new MouseAdapter() {
                        public void mousePressed(MouseEvent e) {
                            actionMenthod(e);
                        }
                   };

这里是将我的事件附加到lblMap。

代码语言:javascript
复制
       lblMap.addMouseListener(mouseLis);

在此事件发生后,您必须从lblmap中删除此事件。

代码语言:javascript
复制
      lblMap.removeMouseListener(mouseLis);

当我再次单击时,只有一个事件会出现,然后它只打印一次。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/19981336

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档