2016-10-01 29 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); 
} 
相關問題