java - 如何知道是否在图形对象上单击

标签 java graphics awt mouselistener

我遇到了问题。我有一个鼠标事件。

  @Override
  public void mouseClicked(MouseEvent e){


  }

而且效果很好。但我有形状。

Rectangle r = new Rectangle();
r.setSize(50, 50);
r.setLocation(200, 200)
g2d.draw(r);

当鼠标事件被触发时,我需要检查是否在我的矩形上单击了它。不仅仅是屏幕上的任何地方。

if (e.ClickedOnRectangle) {
//Do stuff
}

类似这样的事情。有什么解决办法吗?

如何检查我的鼠标是否在 AWT(图形)对象上单击?

最佳答案

这要看情况。如果 Shape 包含在发生鼠标事件的容器内,那么它应该是使用 Shape#contains 方法的简单情况

@Override
public void mouseClicked(MouseEvent e){
    if (rect.contains(e.getPoint()) {
        // Was clicked...
    }
}

仔细看看 Shape JavaDocs 了解更多详细信息

关于java - 如何知道是否在图形对象上单击,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25242212/

相关文章:

Java 自动装箱/拆箱怪异

java - 在 Java 上获取因子总量

objective-c - Ball to Ball Collision - 碰撞时获得显着速度

java - 我的登录系统出了什么问题?

java - 如何使用 SWT AWT 处理 Windows 按键,最小化窗口并返回桌面

java - 如果两个相同的对象具有不同的哈希码,有什么缺点

java - Java中的Add-Recursion,为什么最大值这么低?

java - (Java) 绘制的矩形不出现

math - 一些帮助渲染 Mandelbrot 集

java - 为什么 AbstractAction 不实现 actionPerformed()?