当前位置:  开发笔记 > 编程语言 > 正文

从嵌套的Java ActionListener中调用它

如何解决《从嵌套的JavaActionListener中调用它》经验,为你挑选了1个好方法。

假设我有这个:

class external {
    JFrame myFrame;
    ...

    class internal implements ActionListener {
        public void actionPerformed(ActionEvent e) {
             ...
             myFrame.setContentPane(this.createContentPane());
        }
    }
    ...
}

createContentPane返回一个Container.现在,如果我在外面做这个代码ActionListener就行了,因为我可以访问它.但是,在里面,我没有.我可以访问myFrame,这是将使用方法的内容更新的内容,但这不足以做我想要的,除非我能从中得到它.

我还需要使用其他实例变量的信息createContentPane(),所以我不确定我能不能做到static.



1> OscarRyz..:

你可以:

myFrame.setContentPane(createContentPane());

要么

myFrame.setContentPane(external.this.createContentPane());

顺便说一句,在Java类中,第一个字母通常是大写的.如果你没有这样命名,你的代码仍然可以编译和运行,但是通过遵循编码约定,你将能够阅读其他代码,更重要的是其他代码将能够阅读你的代码.

所以这将是一个更好的风格:

class External {
    JFrame myFrame;
    ...

        class Internal implements ActionListener {
            public void actionPerformed(ActionEvent e) {
                ...
                myFrame.setContentPane(createContentPane());
               //Or myFrame.setContentPane(External.this.createContentPane());
            }
        }
    ...
 }

Java代码约定

推荐阅读
手机用户2502852037
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有