如何在转换时使用awt.Graphics.drawImage()检测绘制图像上的鼠标

时间:2015-03-20 18:21:05

标签: java swing

在Java Swing面板中,我绘制了一个具有任意变换的图像,例如:

public void paintComponent(Graphics g){
    AffineTransform transform = AffineTransform.getTranslateInstance(x, y);
    AffineTransform rotateInstance AffineTransform.getRotateInstance(rotX, rotY);           
    transform.concatenate(rotateInstance);

    g.setTransform(transform);    
    g.drawImage(image, 0, 0 , null);
}

在这样的图像上检测鼠标的最佳方法是什么?

更好:仅在非透明像素上检测鼠标的最佳方法是什么?

1 个答案:

答案 0 :(得分:1)

构建一个封闭图片的Shape,并使用AffineTransform方法createTransformedShape()Shape与图片一起旋转。 Shape方法contains()将允许在Component相对坐标中进行位置测试。完整示例见herehere。引用了两种反向坐标变换的方法here

image