[英]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]
您要在這里i
和j
,而不是rows
和col
。
我想你想做這樣的事情
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.