如何将"this"传递给动作侦听器

eyt*_*nfb 0 java swing actionlistener

我有一个扩展JFrame的MainWindow类,它是我的应用程序中唯一的框架.我有几个JPanels来改变它的内容.我想通过MainWindow,所以我不需要制作它的全局副本.

这是问题所在.我在MainWindow中有一个假的JMenuBar,我用它来寻找屏幕.在他们的JMenuItem侦听器中,我无法将MainWindow作为此传递给JPanels.

有没有办法可以做到这一点,比如可能标记类最终,或者我每次必须传入一个时必须创建一个新的MainWindow.它没有携带任何数据,所以它并不重要,性能不是像这样的小型最终项目的主要关注点,但我想知道是否有更好的方法?

ckl*_*lab 5

你无法通过,this因为它会引用听众吗?如果是这样,你应该可以使用MainWindow.this.

或者创建this对侦听器外部的引用,并将其作为参数传递.