我的老师让我们编写代码,使用awt,swing和图形类在屏幕上绘制徽标。我决定绘制谷歌驱动器符号,但我被困在黄色三分之一。
public class DriveLogo extends JApplet
{
public void init()
{
JRootPane rootPane = this.getRootPane();
rootPane.putClientProperty("defeatSystemEventQueueCheck", Boolean.TRUE);
}
public void paint(Graphics g)
{
int num_rect_points = 4;
g.setColor(Color.black);
g.fillRect(0,0,getSize().width, getSize().height);
/*************************************Yellow 1/3**********************************/
//Order of vertices: Left, right, lower-right, lower-left
int p1x1 = 150, p1x2 = 250, p1x3 = 350, p1x4 = 300;
int p1y1 = 25, p1y2 = 25, p1y3 = 280, p1y4 = 280;
int[] poly_1_x = {
p1x1, p1x2, p1x3, p1x4
};
int[] poly_1_y = {
p1y1, p1y2, p1y3, p1y4
};
Polygon yellow = new Polygon(poly_1_x, poly_1_y, num_rect_points);
/*************************************Draw**********************************/
g.setColor(Color.yellow);
g.fillPolygon(yellow);
}
}
这会产生以下结果:
左边应该有一个倾斜的黄色菱形/矩形。我问我的老师,她检查了我的代码,但无法隔离问题,并告诉我“应该”正常工作。但是,这并不意味着,这是一个相当大的等级。花了两个课时的大部分时间并将项目下载到我的家用电脑进行调试,但我似乎无法弄清问题是什么。
我知道的事情;多边形坐标必须按顺序排列,所以要绘制一个矩形,我不能将它们列在左上角,右下角,左下角,右上角,但我可以将它们列在左上角,右上角,右下角,左下角。
答案 0 :(得分:0)
好的,我通过试验来解决这个问题。无论出于何种原因,对g.fillPolygon(Polygon p)的调用不起作用,但是当我调用g.fillPolygon(poly_1_x,poly_1_y,num_recto_points)时;它运作正常。