所以我在公共(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/