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_Paint - Fatal编程技术网

Java 绘制恒定大小的数组?

Java 绘制恒定大小的数组?,java,arrays,graphics,paint,Java,Arrays,Graphics,Paint,我在做一些相当简单的事情时遇到了困难,比如画一组元素。下面是我在类中使用数组绘制方法的内容:(xB和yB只是x和y的值,我想增加它们以使实例显示在不同的位置) 每次我运行它时,它都会告诉我在框[I].paint(pane,xB,yB)行中有一个NullPointerException。我做错了什么?您正在创建一个Box数组,但没有在其中放入任何内容。默认情况下,每个元素都为null。您需要一个循环来执行类似于Box[0]=newbox()的操作Box[1]=newbox()等等…@takenda

我在做一些相当简单的事情时遇到了困难,比如画一组元素。下面是我在类中使用数组绘制方法的内容:(
xB
yB
只是
x
y
的值,我想增加它们以使实例显示在不同的位置)


每次我运行它时,它都会告诉我在
框[I].paint(pane,xB,yB)
行中有一个
NullPointerException
。我做错了什么?

您正在创建一个
Box
数组,但没有在其中放入任何内容。默认情况下,每个元素都为null。您需要一个循环来执行类似于
Box[0]=newbox()的操作
Box[1]=newbox()等等…@takendark是的,明白了。谢谢!
public void paint(Graphics pane) {
    private Box[] boxes = new Box[NUM_BOX];

    for(int i = 0; i<NUM_BOX; i++){
        if (xB == 290){
            xB = 0;
            yB = yB + 20;
        }

        boxes[i].paint(pane, xB, yB);
        xB = xB + 20;
    }
public class Box {

    private final int WIDTH = 20;
    private final int HEIGHT = 20;
    private boolean up = true;

    public void paint(Graphics pane, int x, int y) {    
        pane.setColor(Color.black);         
        pane.drawRect(x, y, WIDTH, HEIGHT); 
        pane.setColor(Color.gray);           
        pane.fill3DRect(x +2, y+2, WIDTH - 3, HEIGHT - 3, up);  
    }
}