2016-01-13 162 views
-3
import java.awt.Graphics; 
import javax.swing.JPanel; 
import java.awt.Color; 
public class DrawPanel extends JPanel { 
    public void paintComponent(Graphics g) { 
     int height = getHeight(); 
     int width = getWidth(); 
     g.drawRect(350, 510, 110, 170); 
     g.drawRect(470, 510, 110, 170); 
     g.drawRect(590, 510, 110, 170); 
     g.drawRect(710, 510, 110, 170); 
     g.drawRect(830, 510, 110, 170); 
     g.drawRect(350, 30, 110, 170); 
     g.drawRect(470, 30, 110, 170); 
     g.drawRect(590, 30, 110, 170); 
     g.drawRect(710, 30, 110, 170); 
     g.drawRect(830, 30, 110, 170); 
     g.setColor(Color.RED); 
     g.drawRect(110, 450, 110, 170); 
     g.drawRect(110, 60, 110, 170); 
    } 
} 

我需要每個矩形(我的意思是在裏面的矩形),但與這個g.setColor(Color.RED);我只能爲Rectanlge的外部部分着色Java - 顏色矩形

+0

使用g.fillRect()Luke –

+2

我認爲你應該在谷歌環視這個答案 - 嘗試'填充矩形java.awt' - 有幾個答案,並提出了更多的細節可以繼續幫助你。在這裏提出一個新問題可能是最好的,因爲一旦你沒有找到谷歌的東西。 –

+0

Thnks傢伙。我發現 !!如果我想要半長方形的藍色和其餘的紅色,那麼呢?那我該怎麼辦? – Steve21

回答

-1

試試這個:

g.fillRect(x, y, width, height) 

說明here

0

g.drawRect()只繪製矩形的邊框。你可能應該使用g.fillRect(),它用純色填充你的矩形。 JavaDoc

4

drawRect()JavaDocs

繪製指定矩形的輪廓。矩形的左邊和右邊在x和x +寬度處。頂部和底部邊緣在y和y +高度。矩形是使用圖形上下文的當前顏色繪製的。

這就是爲什麼你需要使用fillRect

填充指定的矩形。矩形的左右邊緣位於x和x +寬度-1處。頂部和底部邊緣位於y和y +高度-1處。所得矩形覆蓋寬度像素寬高像素高的區域。該矩形使用圖形上下文的當前顏色填充。

從你最後的評論:And what about if i want to have the half rectangle blue and the rest red? What should i do then ?

繪製矩形2,一端在另一個開始,這樣的:

g.setColor(Color.BLUE); 
g.fillRect(50, 50, 50, 50); 
g.setColor(Color.RED); 
g.fillRect(100, 50, 50, 50); 

我沒有測試上面的代碼,但你這個想法:)

0

使用fillRect()來填充矩形區域而不是繪製矩形。