我开始学习GUI Java,我有一个" NewClass"包含一些带有一些字段和一个按钮的窗口的类,我已经嵌套了一个" Escuchador"这个类里面的类用作事件处理程序,但它一直给我错误"找不到这个符号"。我做了一些测试,它不会从内部读取" NewClass"。我不明白什么是错的,请帮忙,这是代码:
ruby 2.1.5p273 (2014-11-13 revision 48405) [i386-mingw32]
答案 0 :(得分:1)
问题是nameField
是构造函数中的局部变量。它的范围并不比你的构造函数大。
您有几种选择。
使nameField
成为一个类变量(在构造函数之外定义它),以便你的内部类能够使用它。
或者,您可以将nameField
作为构造函数参数传递给内部类:
public class Escuchador implements ActionListener{
private JTextField nameField;
public Escuchador(JTextField nameField){
this.nameField = nameField;
}
public void actionPerformed (ActionEvent event){
String usuario = "";
if (event.getSource()== this.nameField) {
usuario = event.getActionCommand();
}
}
}
这样你甚至不需要将这个类定义为内部类,顺便说一下,这是更优选的方式。