用Java填充矩形

时间:2015-10-25 23:35:04

标签: java swing graphics2d

我做了一些关于如何使用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); 

    }
}

显然会出现错误。我只是不知道如何纠正它。是应该像我填充那样创建矩形,还是应该事先初始化,如本代码所示?

1 个答案:

答案 0 :(得分:2)

问题是您正在尝试将Rectangle类型的实例/对象转换/分配给Grapichs2D

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

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