簡體   English   中英

2D索引數組超出范圍

[英]2D index-Array out of bounds

為了測試我的邏輯是否有效(我認為應該,但不行),我正在使用paint方法進行小操作,我只是不想弄亂我的主項目。

我在板上有Tiles的X和Y位置,並且只想確保我具有正確的X和Y,所以我做了以下方法:

private void drawBoard(Graphics2D g2d) throws IOException {
    BufferedImage image = ImageIO.read(getClass().getResourceAsStream("/background.png"));
    g2d.drawImage(image,0,0, null,null);
    int col = 2;
    int rows = 6;
    int[][] RedArray =
        {{274, 399},
        {274, 440},
        {274, 480},
        {274, 520},
        {274, 560},
        {274, 600}};

    for(int i = 0; i < col; i++){
        for(int j = 0; i < rows; j++){
            g2d.drawRect(RedArray[rows][col], RedArray[rows][col], 25, 25);
        }
    }

}

這應該是從RedArray中獲取x,y值,然后將它們繪制到板上,但是我得到了超出錯誤范圍的索引,我似乎無法解決它

在第二個for循環中,您有i <行,需要為j <行,如下所示:

for (int j = 0; j < rows; j++)

另外RedArray[rows][col]應該是RedArray[j][i]

 RedArray[rows][col] 

您要在這里ij ,而不是rowscol

我想你想做這樣的事情

private void drawBoard(Graphics2D g2d) throws IOException {
BufferedImage image = ImageIO.read(getClass().getResourceAsStream("/background.png"));
g2d.drawImage(image,0,0, null,null);
int col = 2;
int rows = 6;
int[][] RedArray =
    {{274, 399},
    {274, 440},
    {274, 480},
    {274, 520},
    {274, 560},
    {274, 600}};

for(int i = 0; i < col; i++){
    for(int j = 0; j < rows; j++){
        g2d.drawRect(RedArray[j][i], RedArray[j][i], 25, 25); // not RedArray[rows][cols]
    }
}

}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM