62,623
社区成员
发帖
与我相关
我的任务
分享import java.awt.*;
public class ColorfulGrid extends Frame {
private int size = 30;
private int unit = 10;
private int gap = 1;
private Panel[] colorSpots = new Panel[size*size];
private Color[] builtinColors = {
Color.RED, Color.GREEN, Color.BLUE,
Color.CYAN, Color.MAGENTA, Color.ORANGE,
Color.WHITE, Color.BLACK, Color.GRAY, Color.LIGHT_GRAY };
private java.util.Random random = new java.util.Random();
public ColorfulGrid() {
setSize(size*(unit+gap), size*(unit+gap));
setResizable(false);
setLayout(new GridLayout(size, size, gap, gap));
for (int i = 0; i < colorSpots.length; i++) {
colorSpots[i] = new Panel();
add(colorSpots[i]);
colorSpots[i].setBackground(builtinColors[random.nextInt(builtinColors.length)]);
}
}
/*
* 为指定位置的色块设置颜色
*/
public void setColorFor(int row, int col, Color c) {
if (row < 0 || row >= size || col < 0 || col >= size) return;
colorSpots[row*size+col].setBackground(c);
}
public static void main(String[] args) {
new ColorfulGrid().setVisible(true);
}
}
public void paint(Graphics g) {
super.paint(g);
Graphics2D g2 = (Graphics2D) g;
g2.setStroke(new BasicStroke(1.0f)); //笔宽
GradientPaint redtowhite = new GradientPaint(x,y,Color.RED,x+rectWidth-5, y,Color.white);
g2.setPaint(redtowhite); //画渐变的
int orgX = 10;
int orgY = 10;
//水平线31条
for(int i = 0; i <31; i++)
{
g2.draw(new Line2D.Double(orgX, orgY+i*10, orgX + 30*10, orgY+i*10));
}
//垂直线31条
for(int i = 0; i <31; i++)
{
g2.draw(new Line2D.Double(orgX+i*10, orgY, orgX+i*10 , orgY+ 30*10));
}