Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/394.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何根据数组中的项目填充矩形?_Java_Arrays_Graphics_Generator - Fatal编程技术网

Java 如何根据数组中的项目填充矩形?

Java 如何根据数组中的项目填充矩形?,java,arrays,graphics,generator,Java,Arrays,Graphics,Generator,所以基本上,我需要生成一个1和0的数组,然后填充一定数量的矩形。矩形是“正方形”,需要形成更大的正方形。比方说,我希望我的大正方形有500像素宽和高,并用100个正方形填充,所以我需要10个长度为10的数组-我部分成功了-然后我需要根据生成的数组的索引填充小正方形,比如,如果数组1-1为1,则应填充正方形1-1,依此类推 public void run() { int tableSize = readInt("Enter the size of the table in pixels:

所以基本上,我需要生成一个1和0的数组,然后填充一定数量的矩形。矩形是“正方形”,需要形成更大的正方形。比方说,我希望我的大正方形有500像素宽和高,并用100个正方形填充,所以我需要10个长度为10的数组-我部分成功了-然后我需要根据生成的数组的索引填充小正方形,比如,如果数组1-1为1,则应填充正方形1-1,依此类推

public void run() {
    int tableSize = readInt("Enter the size of the table in pixels: ");
    int squareNumber = readInt("Enter the number of squares in a row: ");
    filler(arrayGen(squareNumber), tableSize, squareNumber);
    }

private double[] arrayGen(int A) {
    double[] arr1 = new double[A];
    for (int i = 0; i < arr1.length; i++) {
        arr1[i] = (Math.random() < 0.5 ? 0 : 1);
    }
    return arr1;
}

private void filler(double[] A, int x, int y) {
    for (int i = 0; i < A.length; i++){
        for (int x1 = 0; x1 < x; x1+=(x/y)) {
            GRect rect1 = new GRect (x1, 0, x/y, x/y);
            rect1.setFilled(true);
            rect1.setFillColor(Color.blue);
            if (A[i] == 1) {
                add(rect1);
            }
         }
      }
   }
}
public void run(){
int tableSize=readInt(“以像素为单位输入表的大小:”;
int squareNumber=readInt(“输入行中的方块数:”);
填充(arrayGen(squareNumber)、表大小、squareNumber);
}
私人双[]阵列(int A){
双精度[]arr1=新双精度[A];
for(int i=0;i
这就是我想到的,它仍然缺少一些部分,即如何生成下面的行,但正如我上面所说的,我的主要问题是数组


谢谢

您的代码与[i]和第i个正方形之间没有关系
filler
运行外部循环
A.length
次,在内部循环中创建的矩形都使用相同的
A[i]
值来确定是否应该填充,因此它们是全部填充还是全部为空取决于
A
数组中的最后一个值


它看起来也像是你的
filler
方法只为大正方形的第一行创建矩形;我真的不知道。我可以说这一代人,如果它/他们看起来没有必要,那么也许可以放弃这个想法。另外,如果您不确定是否会添加GRect,我不会花费资源来实例化它。首先检查它是否应该;然后创建它,然后添加它。数组的问题是,在填充符中,程序只读取数组中的第一项,并决定要添加的所有矩形都将被填充/清空。因此,要添加的所有矩形都是,但只有那些数组值为
1
的矩形被填充?是的,完全正确。我不知道怎么做,我回答了,但把它擦掉了。我想看看埃兰的答案可以让你走上正轨。我的答案中的代码让您看到了一行矩形被正确填充,但您希望有多个数组,因此添加后,我的代码将过时。我修复了数组值的问题,现在我只需要重复多行多列^^