java - Java动画旋转

原文 标签 java swing awt

我对Java的经验很少,而且我是一名业余程序员。所以请注意我的词汇。

我希望能够将静态矩形粘贴在旋转矩形的顶部。
到目前为止,当我尝试添加另一个对象时,它会与另一个图像一起旋转。我尝试将旋转设置为零,但这似乎不起作用。我还尝试创建另一个单独绘制组件的类,并使用frame.add将它们添加到框架中。我还尝试过为Draw类创建另一个对GUI没有影响的部件。这是我当前的Draw类。任何帮助表示赞赏。

class DrawRectangle extends JPanel {

    @Override
    public void paintComponent(Graphics g) {
        int h = this.getHeight();
        int w = this.getWidth();
        Graphics2D g2 = (Graphics2D) g;

        //draw background
        g2.setColor(Color.WHITE);
        g2.fillRect(0, 0, w, h);

        //draw roatiing rectangle
        g2.setColor(Color.CYAN);
        Rectangle rRec = new Rectangle(w / 4, h / 4, 2 * w / 4, 2 * h / 4);
        double wr = rRec.getX() + rRec.getWidth() / 2;
        double hr = rRec.getY() + rRec.getHeight() / 2;
        g2.rotate(Math.toRadians(count), wr, hr);
        g2.fill(rRec);
        g2.fillRect(w / 3, h / 3, 2 * w / 3, 2 * h / 3);
    }

    public void paintComponent2(Graphics g) {
        int h = this.getHeight();
        int w = this.getWidth();
        Graphics2D g2 = (Graphics2D) g;

    }
} 

最佳答案

到目前为止,当我尝试添加另一个对象时,它会与另一个图像一起旋转。


创建一个单独的Graphics对象来进行旋转,这样就不会影响传递到绘画方法中的Graphics对象的属性:

//Graphics2D g2 = (Graphics2D) g;
Graphics2D g2 = (Graphics2D)g.create();

//  painting code

g2.dispose();

相关文章:

java - 为什么“\ 400”不是编译时错误?

java - 如何在Hadoop MapReduce Java API中使用Java断言?

java - JScrollPane的问题

java - Java AWT的不正确对齐错误。无法移动我的标签

java - 使用smslib获取短信的文本和发件人

java - 调整JFrame大小时摆动组件抽搐

java - 可运行的.jar可在Ubuntu上运行,但不能在Windows上运行

java - Java表-AWT

java - 如何画一条方向和固定长度的线

java - Java日期验证