私有变量不能引用同一个方法中的另一个方法class
Private variable cannot reference to another method in the same class
我是 Java 的新手,今天我在尝试执行 ActionListener 时遇到代码问题
我的 java class 看起来像这样:
public class exam{
private void createForm(){
...
JButton jbtn = new JButton("OK");
jbtn.addActionListener((ActionListener) this);
...
}
public static void main(String[] args){
exam ex = new exam();
ex.createForm();
}
public void ActionPerformed(ActionEvent ae){
//IDE show that no variable name "jbtn"
if (ae.getSource() == jbtn){
...
}
}
}
您的 jbtn
变量在 createForm
方法中 声明。 Java 使用所谓的 "scoping rules" 来确保您不会不小心使用您不希望使用的变量。通过在 createForm
中声明 jbtn
,您告诉 Java 编译器您只想在该方法中使用它,而不是其他任何地方。这称为 "local" 变量(例如,它是方法的本地变量)。
您可能想要使用 "member variable"(它是 class 的 成员)。这是在 class 内部声明的,但在任何方法之外。在您的情况下,它看起来像这样:
public class exam{
JButton jbtn;
private void createForm(){
...
jbtn = new JButton("OK");
jbtn.addActionListener((ActionListener) this);
...
}
变量的声明现在处于 class 级别,并且在 createForm
中以与 ActionPerformed
.
中相同的方式引用它
这是 Java 中的一个相当基本的概念,因此您可能想看一下有关这方面内容的一些 Java 教程。 official tutorial 是一个很好的起点。
我是 Java 的新手,今天我在尝试执行 ActionListener 时遇到代码问题 我的 java class 看起来像这样:
public class exam{
private void createForm(){
...
JButton jbtn = new JButton("OK");
jbtn.addActionListener((ActionListener) this);
...
}
public static void main(String[] args){
exam ex = new exam();
ex.createForm();
}
public void ActionPerformed(ActionEvent ae){
//IDE show that no variable name "jbtn"
if (ae.getSource() == jbtn){
...
}
}
}
您的 jbtn
变量在 createForm
方法中 声明。 Java 使用所谓的 "scoping rules" 来确保您不会不小心使用您不希望使用的变量。通过在 createForm
中声明 jbtn
,您告诉 Java 编译器您只想在该方法中使用它,而不是其他任何地方。这称为 "local" 变量(例如,它是方法的本地变量)。
您可能想要使用 "member variable"(它是 class 的 成员)。这是在 class 内部声明的,但在任何方法之外。在您的情况下,它看起来像这样:
public class exam{
JButton jbtn;
private void createForm(){
...
jbtn = new JButton("OK");
jbtn.addActionListener((ActionListener) this);
...
}
变量的声明现在处于 class 级别,并且在 createForm
中以与 ActionPerformed
.
这是 Java 中的一个相当基本的概念,因此您可能想看一下有关这方面内容的一些 Java 教程。 official tutorial 是一个很好的起点。