我做了一些关于如何使用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);
}
}
显然会出现错误。我只是不知道如何纠正它。是应该像我填充那样创建矩形,还是应该事先初始化,如本代码所示?
答案 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组件。您可能正在寻找JComponent
或JPanel
。