2016-10-01 87 views
0

我用画两颗星:为什么当我使用setStroke时,我的多边形都没有边框?

public void draw(Graphics2D g2) { 
    g2.drawPolygon(xCoordOfStar, yCoordOfStar, POINTS); 
    g2.setStroke(new BasicStroke(5)); 
} 

和:

public void paintComponent(Graphics g) 
    { 
    Graphics2D g2 = (Graphics2D) g; 
    Star star1 = new Star(100,200,300); 
    Star star2 = new Star(200,200,300); 
    star1.draw(g2); 
    star2.draw(g2);  
} 

在其他类。

由于某种原因,我不知道,只有较大的明星(star2)得到较粗的边框,而star1没有得到任何边框。我究竟做错了什么?

+0

难道是因为你设置的行程前后绘制多边形来代替? – nhouser9

+0

现在我有没有觉得愚蠢。 – Brow

回答

0

这是一个订购问题。你的第二个Polygon获得一个边框,因为你的第一个Polygon称为g2.setStroke(new BasicStroke(5));注释掉第一个星形代码,第二个星形现在也丢失了边界。

要解决它,你只需要重新排列方法:

public void draw(Graphics2D g2) { 
    g2.setStroke(new BasicStroke(5)); 
    g2.drawPolygon(xCoordOfStar, yCoordOfStar, POINTS); 
} 
相关问题