Java,不适用于参数,仿射变换?

Java, not applicable for the arguments,affine transform?

public void paint(Graphics g) {
        Rectangle rectangle = new Rectangle(100,100,100,100);
        Graphics2D g2d = (Graphics2D) g;
        AffineTransform transform = new AffineTransform();
        transform.rotate(
                Math.toRadians(45), rectangle.getX() + rectangle.width/2,
                rectangle.getY() + rectangle.height/2
        );
        g2d.draw(transform); 
}

我试图围绕一个中心旋转一个矩形,但它不起作用。 我收到此错误:

The method draw(Shape) in the type Graphics2D is not applicable for the arguments (AffineTransform)

该错误表明您不能使用转换调用此方法。

您应该尝试先调用 setTransform 然后 draw 矩形。

public void paint(Graphics g) {
        Rectangle rectangle = new Rectangle(100,100,100,100);
        Graphics2D g2d = (Graphics2D) g;
        AffineTransform transform = new AffineTransform();
        transform.rotate(
                Math.toRadians(45), rectangle.getX() + rectangle.width/2,
                rectangle.getY() + rectangle.height/2
        );
        g2d.setTransform(transform);
        g2d.draw(rectangle); 
}