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);
}
}
我需要为每个Rectangle(我的意思是在Rectangle中)着色红色,但是使用这个g.setColor(Color.RED);我只能为Rectanlge的外部部分着色
答案 0 :(得分:5)
drawRect()
绘制指定矩形的轮廓。矩形的左右边缘为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);
我没有测试过上面的代码,但是你明白了这一点:)
答案 1 :(得分:0)
g.drawRect()
仅绘制矩形的边框。您可能应该使用用纯色填充矩形的g.fillRect()
。 JavaDoc
答案 2 :(得分:0)
答案 3 :(得分:0)
使用fillRect()
填充矩形区域,而不只是绘制矩形。