为了测试我的逻辑是否有效(我认为它应该但不是)我在绘制方法中进行小操作,我只是不想弄乱我的主项目。
我在棋盘上有T和X的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值,然后将它们绘制到板上,但我得到一个索引超出范围的错误,我似乎无法启动它
答案 0 :(得分:2)
在你的第二个for循环中你有我&lt;行,需要是j&lt;像这样的行:
for (int j = 0; j < rows; j++)
同样RedArray[rows][col]
应为RedArray[j][i]
答案 1 :(得分:2)
RedArray[rows][col]
您希望此处i
和j
,而不是rows
和col
。
答案 2 :(得分:0)
我想你想做这样的事情
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]
}
}
}