代码如下:
package yuanyang.cn;
import java.util.Random;
import javax.swing.ImageIcon;
import javax.swing.JFrame;
import javax.swing.JLabel;
public class BoardGame extends JFrame {
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
BoardGame frame = new BoardGame();
frame.setVisible(true);
}
public BoardGame()
{
JLabel [] jlbArrey= new JLabel[8];
ImageIcon imge1 = new ImageIcon("E:\\Java\\12.jpg");
ImageIcon imae2 = new ImageIcon("E:\\Java\\13.jpg");
for(int i=0;i<9;i++)
{
jlbArrey[i]= new JLabel();
this.add(jlbArrey[i]);
Random rdn = new Random();
int n=rdn.nextInt(3);
if(n==0)
{
jlbArrey[i].setIcon(imge1);
}
else if(n==1)
{
jlbArrey[i].setIcon(imae2);
}
else
{
jlbArrey[i].setIcon(null);
}
}
}
}
产生错误如下:
Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 8
at yuanyang.cn.BoardGame.<init>(BoardGame.java:29)
at yuanyang.cn.BoardGame.main(BoardGame.java:16)
------解决方案--------------------
for(int i=0;i<9;i++) 这里错了,
应该是 for(int i=0;i<8;i++), array的index 从零开始,8个元素就是 0 - 7
------解决方案--------------------
话说楼主犯这种低级错误eclipse那边查不出来,还要来论坛上问?
数组下标越界抛出的异常是:java.lang.ArrayIndexOutOfBoundsException
学习的效率体现在哪里,就在这边。
有问题尽量自己解决,不行的话 谷歌+百度 ,实在找不到解决方法才来论坛求救。顺序不要颠倒