java在一个JButton中创建的对象为什么在另一个JButton无法使用
JButtonbtnReadFile=newJButton("readfile");btnReadFile.addActionListener(newActionList...
JButton btnReadFile = new JButton("read file");
btnReadFile.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
InputStream is=null;
try {
is=new FileInputStream("D:/src/Friend.txt");
//List list = new ArrayList();
InputStreamReader isr = new InputStreamReader(is,"GBK");
BufferedReader bfReader=new BufferedReader(isr);
String line=null;
bfReader.skip(1);//跳过第一行因为第一行为标题行
line=bfReader.readLine();
int i=0;
while((line=bfReader.readLine())!=null){
String[] data=line.split(" ");
Friend[] f=new Friend[50];
f[i].SetNum(data[0]);
f[i].SetNane(data[1]);
f[i].SetSex(data[2]);
f[i].SetBirthday(data[3]);
f[i].SetPhoneNum1(data[4]);
f[i].SetPhoneNum2(data[5]);
f[i].SetPhoneNum3(data[6]);
f[i].SetAdd(data[7]);
f[i].SetGroup(data[8]);
i++;
//f[i].ShowFriendInfo();
}
} catch (IOException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}
}
});
JButton btnShowF = new JButton("show f1");
btnShowF.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
f[i].ShowFriendInfo();//这个地方报错 意思是f这个变量未定义
}
}); 展开
btnReadFile.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
InputStream is=null;
try {
is=new FileInputStream("D:/src/Friend.txt");
//List list = new ArrayList();
InputStreamReader isr = new InputStreamReader(is,"GBK");
BufferedReader bfReader=new BufferedReader(isr);
String line=null;
bfReader.skip(1);//跳过第一行因为第一行为标题行
line=bfReader.readLine();
int i=0;
while((line=bfReader.readLine())!=null){
String[] data=line.split(" ");
Friend[] f=new Friend[50];
f[i].SetNum(data[0]);
f[i].SetNane(data[1]);
f[i].SetSex(data[2]);
f[i].SetBirthday(data[3]);
f[i].SetPhoneNum1(data[4]);
f[i].SetPhoneNum2(data[5]);
f[i].SetPhoneNum3(data[6]);
f[i].SetAdd(data[7]);
f[i].SetGroup(data[8]);
i++;
//f[i].ShowFriendInfo();
}
} catch (IOException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}
}
});
JButton btnShowF = new JButton("show f1");
btnShowF.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
f[i].ShowFriendInfo();//这个地方报错 意思是f这个变量未定义
}
}); 展开
3个回答
展开全部
f是btnReadFile监听器类创建的变量,作用域仅限于此类,怎么能用于btnShowF的监听器类呢?
要想共享变量,需要把Friend[] f 定义在
JButton btnReadFile = new JButton("read file");
之后(第二行),
可能需要定义为:
final Friend[] f=new Friend[50];
不过这只是示例,设计并不好。
要想共享变量,需要把Friend[] f 定义在
JButton btnReadFile = new JButton("read file");
之后(第二行),
可能需要定义为:
final Friend[] f=new Friend[50];
不过这只是示例,设计并不好。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
你的f定义在try里面了,定义在try里面就属于局部变量了,出去后就无效了,当然就变成未定义了
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
你的f是在循环内部建议的属于局部变量,只有在当次循环才有效,出了那次循环就无效了
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询