嵌套课不会从母班上读

时间:2015-04-23 20:41:36

标签: java event-handling

我开始学习GUI Java,我有一个" NewClass"包含一些带有一些字段和一个按钮的窗口的类,我已经嵌套了一个" Escuchador"这个类里面的类用作事件处理程序,但它一直给我错误"找不到这个符号"。我做了一些测试,它不会从内部读取" NewClass"。我不明白什么是错的,请帮忙,这是代码:

ruby 2.1.5p273 (2014-11-13 revision 48405) [i386-mingw32]

1 个答案:

答案 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();
        }
    }
}

这样你甚至不需要将这个类定义为内部类,顺便说一下,这是更优选的方式。