java - 如何从处理程序内调用外部方法

标签 java class methods scope handler

所以我在公共(public)类中有一个 MouseListener 类,其中包含一些方法。 我已将 mouseListener 附加到公共(public)类中的一个组件。

问题是我无法找到一种简单的方法来调用公共(public)类中的方法,例如每当我说 this.showRemove(); 范围都来自处理程序类内而不是公开课。这是一些示例代码

public class Game {

 public Game() {

  JPanel pnl = new JPanel();
  pnl.addMouseListener(new GameMouseListener());

 }

 public void showRemove(){

  //Code Here

 }


 class GameMouseListener implements MouseListener {

  public void mouseClicked(MouseEvent e) {
     this.showRemove(); //Can't Find Symbol Here     

  }

 }  

}

最佳答案

当您在内部类中使用 this 时,您指的是内部类的实例,而不是宿主类。

由于您的内部类不是静态内部类,因此您可以使用主机类的类名来访问对主机类的引用,如下所示:

HostClass {
    doSomething() {}

    class Inner {
        void blah() {
            HostClass.this.doSomething();
        }
    }
}

除非您调用的方法也在内部类中,否则您可以避免显式命名,而只需使用方法名称:

void blah() {
    doSomething();
}

关于java - 如何从处理程序内调用外部方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7100376/

相关文章:

android - 使用另一个类中的编辑文本中的文本设置 TextView 中的文本

c++ - 找不到 Qt vulkan 类

java - 驱动程序和方法不工作

Java Switch菜单错误以及如何从另一个类调用方法

WPF将ItemsSource绑定(bind)到静态方法?

java - 如何在 Spring 配置中将静态常量作为参数传递?

java - 多模块 TypeSafe 配置文件

javascript:类语法之前的类和获取方法

java - 对对象列表进行排序

Java滑动JPanels