在 Java 中填充一个矩形

Filling a rectangle in Java

我在谷歌上大量搜索了如何使用 graphics2D 填充矩形。

我目前想制作德国国旗,所以三个矩形。但现在我只想填充一个矩形,看看结果如何。

import java.awt.Graphics;
import java.awt.Graphics2D;
import java.awt.Rectangle;
import java.awt.geom.Line2D;
import javax.swing.JComponent;

public class germanflag
{
    public void paintComponent(Graphics g)
    {
        Graphics2D g2 = (Graphics2D) g;

        // Construct flag
        Rectangle flag = new Rectangle(0, 0, 120, 60); 

        Graphics2D g2d = flag;
        g2d.setColor(Color.RED);
        g2d.fillRect(0,0,120,60);
        // draw the rectangle
        g2.draw(flag); 

    }
}

显然出现错误。我只是不知道如何纠正它。矩形应该在我填充时创建,还是应该像这段代码一样预先初始化?

问题是您正在尝试将 Rectangle 类型的 cast/assign instance/object 转换为 Grapichs2D

//Graphics2D g2d = flag; //not required
g2d.setColor(Color.RED); //use g2 instead
g2d.fillRect(0,0,120,60);//use g2 instead

P.S。 class germanflag 没有扩展任何 Swing 组件。您可能正在寻找 JComponentJPanel.