写贪吃蛇遇到的问题
public class view extends JFrame implements Runnable {
GridLayout grid;
snake model;
JPanel chessboard;
int m;
Label[][] a= new Label[m][m];
public view(int m,snake s){
this.m=m;
model=s;
pre();
}
void pre()
{
chessboard = new JPanel ();
Label[][] a= new Label[m][m];
grid = new GridLayout (m, m);
chessboard.setLayout (grid);
for ( int i = 0; i < m; i++ )
{
for ( int j = 0; j <m; j++ )
{
a[i][j]=new Label();
if(i==0||i==m-1||j==0||j==m-1){
a[i][j].setBackground (Color.red);
}
else
a[i][j].setBackground (Color.pink);
chessboard.add (a[i][j]);
}
}
add (chessboard, BorderLayout.CENTER);
setBounds (200, 200,800, 800);
setDefaultCloseOperation (JFrame.EXIT_ON_CLOSE);
setVisible (true);
}
@Override
public void run() {
// TODO Auto-generated method stub
int i=0;
while(!model.islive){
if(i%200==0){
Iterator<node> iter=model.list.iterator();
while(iter.hasNext()){
node n=iter.next();
System.out.println(a.length);
a[n.x][n.y].setBackground(Color.black);
}
}
i++;
}
}
}
想在run 方法里改变label 的颜色,main 函数设置m=10 却输出 a.length 为0?抛出Exception in thread "Thread-3" java.lang.ArrayIndexOutOfBoundsException: 2?? 为啥run 方法不能访问到 label 对象数组