本来有示例图片的,结果因为太像二维码被和谐了,呜呜呜,但没事,哈哈哈
*X,Y 可以改变图像位置
*w,h 可以改变方块的大小
*gap 是方块之间的间隔
*int []arr=new int [1000]; 通过调整int里面数值的大小来改变方块数量
上代码:
package test;
import java.awt.*;
import java.util.Random;
import javax.swing.JFrame;
import javax.swing.JPanel;
class GridsCanvas extends JPanel {
int x=0;int y=0;int w=20;int h=20;int gap=20;
public void paint(Graphics g) {
Random random = new Random();
int []arr=new int [1000];
for (int i = 0; i <arr.length ; i++) { // 调用Random 通过遍历的形式为数组赋初值。
arr[i] = random.nextInt(2);
}
int count= 1;
int row= (int) Math.sqrt(arr.length);
for(int ar:arr)
{
if(ar==1)
{
if(count%row>0)
{
g.fillRect(x,y,w,h);
x+=gap;
}if(count%row==0)
{
g.fillRect(x,y,w,h);
x-=(row-1)*gap;
y+=gap;
}
count++;
}
if(ar==0)
{
if(count%row>0)
{
// g.drawRect(x,y,w,h);
x+=gap;
}
if(count%row==0)
{
// g.drawRect(x,y,w,h);
x-=(row-1)*gap;
y+=gap;
}
count++;
}
}
}
}
public class Main extends JFrame {
public Main() {
GridsCanvas x = new GridsCanvas();
add(x);
pack();
}
public static void main(String[] a) {
Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize();
Main main=new Main();
main.setVisible(true);
main.setSize(screenSize);
}
}