2016-01-13 109 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()来填充矩形区域而不是绘制矩形。