gpt4 book ai didi

java - 多次调用 MouseListener

转载 作者:搜寻专家 更新时间:2023-11-01 01:21:44 26 4
gpt4 key购买 nike

我正在使用此代码获取作为 jLable 图标放置的图像的 X 和 Y 坐标。对此 question 的回答建议了这种获取坐标的方法.

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 次。

它随着我点击次数的增加而增加。你们中的任何人都可以解释为什么会这样吗?我该如何解决? :)

最佳答案

问题是当点击发生时,你一次又一次地添加一个新的监听器,在这里。

private void lblMapMouseClicked(MouseEvent evt) 
{
lblMap.addMouseListener(new MouseAdapter()
{
...

相反,将您的代码更改为此。

private void lblMapMouseClicked(MouseEvent e)
{
double X = e.getX();
double Y = e.getY();
System.out.println("X: " + X + "Y: " + Y);
}

它应该可以解决问题。

希望这对您有所帮助。

关于java - 多次调用 MouseListener,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19981336/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com