我使用此代码来获取作为 jLable 图标放置的图像的 X 和 Y 坐标。
对此的答案建议了这种获取坐标的方法question https://stackoverflow.com/questions/19977589/how-to-get-x-y-coordinates-of-an-image-in-a-jlable.
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) { }
被多次调用。
正是我点击图像的次数。
例如:如果我第三次点击它,
X 和 Y 值来自System.out.println
line ,打印 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);
}
它应该可以解决问题。
希望这可以帮助。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)