在 actionPerformed Java eclipse 中访问局部变量
Accessing local variable within actionPerformed Java eclipse
我正在尝试从 actionPerformed class 中获取一个 int 变量中的值,该整数来自另一个 class,它作为参数“asd”传递并保存值“ 1”。我显然从下面发布的代码中删除了一些行以使其更易于阅读,但我删除的内容与我遇到的问题无关。
所以在这里,我看到的输出是;
asd
1
1
0
0
最后两个输出来自 actionPerformed class,它们在我单击相关按钮时出现。我怎样才能使这 2 个输出也显示为 1?
public class customerAppointmentScreen extends JFrame implements ActionListener{
private JButton massB,indiB;
public int asd,id;
public customerAppointmentScreen(int asd) {
System.out.println("asd ");
System.out.println(asd);
id=asd;
System.out.println(id);
}
public void actionPerformed(ActionEvent e) {
// TODO Auto-generated method stub
if(e.getSource()==massB) {
int id=asd;
System.out.println(asd);
System.out.println(id);
//this.setVisible(false);
}
else if(e.getSource()==indiB) {
this.setVisible(false);
}
}
}
开始于...
public int asd,id;
public customerAppointmentScreen(int asd) {
System.out.println("asd ");
System.out.println(asd);
id=asd;
System.out.println(id);
}
参数asd
从未分配给实例字段asd
,因此实例字段保持0
(另一方面,id
等于参数asd
)
当ActionListener
被触发时...
public void actionPerformed(ActionEvent e) {
if (e.getSource() == massB) {
int id = asd;
System.out.println(asd);
System.out.println(id);
//this.setVisible(false);
} else if (e.getSource() == indiB) {
this.setVisible(false);
}
}
您将实例字段 asd
值分配给局部变量 id
,因为 asd
仍为零,因此 id
.
“简单”的解决方案是将构造函数的参数分配给适当的实例字段,或者在 ActionListener
中使用正确的实例字段,具体取决于您的意图。
我正在尝试从 actionPerformed class 中获取一个 int 变量中的值,该整数来自另一个 class,它作为参数“asd”传递并保存值“ 1”。我显然从下面发布的代码中删除了一些行以使其更易于阅读,但我删除的内容与我遇到的问题无关。 所以在这里,我看到的输出是;
asd
1
1
0
0
最后两个输出来自 actionPerformed class,它们在我单击相关按钮时出现。我怎样才能使这 2 个输出也显示为 1?
public class customerAppointmentScreen extends JFrame implements ActionListener{
private JButton massB,indiB;
public int asd,id;
public customerAppointmentScreen(int asd) {
System.out.println("asd ");
System.out.println(asd);
id=asd;
System.out.println(id);
}
public void actionPerformed(ActionEvent e) {
// TODO Auto-generated method stub
if(e.getSource()==massB) {
int id=asd;
System.out.println(asd);
System.out.println(id);
//this.setVisible(false);
}
else if(e.getSource()==indiB) {
this.setVisible(false);
}
}
}
开始于...
public int asd,id;
public customerAppointmentScreen(int asd) {
System.out.println("asd ");
System.out.println(asd);
id=asd;
System.out.println(id);
}
参数asd
从未分配给实例字段asd
,因此实例字段保持0
(另一方面,id
等于参数asd
)
当ActionListener
被触发时...
public void actionPerformed(ActionEvent e) {
if (e.getSource() == massB) {
int id = asd;
System.out.println(asd);
System.out.println(id);
//this.setVisible(false);
} else if (e.getSource() == indiB) {
this.setVisible(false);
}
}
您将实例字段 asd
值分配给局部变量 id
,因为 asd
仍为零,因此 id
.
“简单”的解决方案是将构造函数的参数分配给适当的实例字段,或者在 ActionListener
中使用正确的实例字段,具体取决于您的意图。