尽管看似有效的顶点坐标,但我的Java多边形没有绘制

时间:2016-10-24 16:28:50

标签: java swing

我的老师让我们编写代码,使用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);
    }
}

这会产生以下结果:

enter image description here

左边应该有一个倾斜的黄色菱形/矩形。我问我的老师,她检查了我的代码,但无法隔离问题,并告诉我“应该”正常工作。但是,这并不意味着,这是一个相当大的等级。花了两个课时的大部分时间并将项目下载到我的家用电脑进行调试,但我似乎无法弄清问题是什么。

我知道的事情;多边形坐标必须按顺序排列,所以要绘制一个矩形,我不能将它们列在左上角,右下角,左下角,右上角,但我可以将它们列在左上角,右上角,右下角,左下角。

1 个答案:

答案 0 :(得分:0)

好的,我通过试验来解决这个问题。无论出于何种原因,对g.fillPolygon(Polygon p)的调用不起作用,但是当我调用g.fillPolygon(poly_1_x,poly_1_y,num_recto_points)时;它运作正常。