兄弟!你还是没有把局部变量和成员变量的作用域和生命周期没搞明白! 首先:
else if(e2.getSource()==b[num]) //编译报错
{
label2.setText("恭喜您,答对了!");
}
其中的b按钮的对象数组定义在Guess的构造方法中,内部内只能访问外部类的成员变量,而构造方法中的变量为局部变量,只作用在构造方法中,
其次:"num"此变量是在 if(e2.getSource()==buttonbegin)
{
int num=(int)(Math.random()*3);
label1.setText(" 请选择卡片进行猜测 ");
}
这段代码中声明并定义的它的作用域是在if语句中有作用,
你试试把: Button[] b=new Button[strs.length];
的声明不分放在成员位置上,实例部分放在构造方法中,
再把 int num=(int)(Math.random()*3);
的声明部分放在 actionPerformed(ActionEvent e2)方法中的局部变量,赋值不分放在if语句中!
回答有点乱,希望LZ把变量的作用域好好理一理! |