1

これが私のコードです:

int[][] coordX = new int[10000][10000];
int[][] coordY = new int[10000][10000];
int cX = 0;
int cY = 0;

Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize();
int width = (int) (screenSize.getWidth());
int height = (int) (screenSize.getHeight());
BufferedImage dirt = null;
{
    try {
        dirt = ImageIO.read(new File("res/dirt.png"));
    } catch (IOException e) {
    }
}

@Override
public void paintComponent(Graphics g) {
    super.paintComponent(g);
    g.setColor(Color.RED);
    for (int y = 0; y <= height; y = y + 50) {
        for (int x = 0; x <= width; x = x + 50) {
            g.drawImage(dirt, x, y, 50, 50, Color.BLACK, this);
            coordX[cX][cY] = cX;
                coordY[cX][cY] = cY; 
            cX = cX + 1;
            System.out.println("X=" + coordX[cX][cY]);
        }
        cY = cY + 1;
        cX = 0;
        System.out.println("Y=" + coordY[cX][cY]);
    }
}

コンソールはすべての「X=」値をゼロとして出力し、「Y=」も同じですが、「cX」と「cY」の値を単独で出力すると、意図したとおりにカウントされます。この問題は、「cX」と「cY」の値を配列に格納しようとしたときにのみ発生するようです。

4

2 に答える 2

0

印刷する前にインクリメントcXしています。cYこれを試して:

coordX[cX][cY] = cX;
coordY[cX][cY] = cY; 
System.out.println("X=" + coordX[cX][cY]);
System.out.println("Y=" + coordY[cX][cY]);
cX = cX + 1;
于 2013-07-04T15:39:04.150 に答える
0

印刷する前にcXをインクリメントしています

   cX = cX + 1;
   System.out.println("X=" + coordX[cX][cY]);

つまり、入力したばかりの要素を印刷していません。デフォルトの (初期化されていない) int 要素値 (0) を常に取得します。

于 2013-07-04T15:39:28.973 に答える