Java 我怎样才能通过;这";变成一个行动听众

Java 我怎样才能通过;这";变成一个行动听众,java,swing,actionlistener,Java,Swing,Actionlistener,我有一个扩展JFrame的MainWindow类,它是我的应用程序中唯一的框架。我有几个JPanel要更改它的内容。我想传递主窗口,这样我就不必对它进行全局复制 问题就在这里。我在主窗口中有一个假的JMenuBar,用来四处寻找屏幕。在他们的JMenuItem侦听器中,我无法将MainWindow作为此消息传递给JPanel 有没有一种方法可以做到这一点,比如在期末考试中打分,或者每次我必须通过一个主窗口时,我都必须创建一个新的主窗口。它不携带任何数据,因此它并不重要,性能也不是像这样的小型最终

我有一个扩展JFrame的MainWindow类,它是我的应用程序中唯一的框架。我有几个JPanel要更改它的内容。我想传递主窗口,这样我就不必对它进行全局复制

问题就在这里。我在主窗口中有一个假的JMenuBar,用来四处寻找屏幕。在他们的JMenuItem侦听器中,我无法将MainWindow作为此消息传递给JPanel


有没有一种方法可以做到这一点,比如在期末考试中打分,或者每次我必须通过一个主窗口时,我都必须创建一个新的主窗口。它不携带任何数据,因此它并不重要,性能也不是像这样的小型最终项目的主要关注点,但我想知道是否有更好的方法?

您是否无法传递
,因为它会引用侦听器?如果是这样的话,您应该能够使用
main窗口


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

您是否无法传递该,因为它将引用侦听器?如果是这样的话,您应该能够使用
main窗口


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

创建MainWindow类作为外部类,并将其扩展到JFrame,而您已经这样做了。现在在MainWindow类中,创建任意多的内部类,并让ActionListener以不同的方式处理ActionListener方法

例如:


您还可以实现单例模式,以确保只有一个MainWidow实例。

创建MainWindow类作为外部类,并将其扩展到JFrame,而您已经这样做了。现在在MainWindow类中,创建任意多的内部类,并让ActionListener以不同的方式处理ActionListener方法

例如:


您还可以实现Singleton模式,以确保只有一个MainWidow实例。

尝试以下任一方法:

  • 制作
    main窗口
    singleton
  • 创建侦听器时,将方法中的变量标记为
    final
  • 使用
    main窗口。此

对于您的情况,请使用单例方法,您可以从项目的任何地方自由访问该方法。

尝试以下任何一种方法:

  • 制作
    main窗口
    singleton
  • 创建侦听器时,将方法中的变量标记为
    final
  • 使用
    main窗口。此

对于您的情况,请使用单例方法,这样您就可以从项目的任何位置自由访问。

您可能在程序中的某个地方有一个对
MainWindow
对象的引用。只要将它传递给任何需要它的类就行了。您可能在程序的某个地方有一个对
MainWindow
对象的引用。只要把它传给任何需要它的班级就行了。看,它也起作用了,谢谢。对侦听器的引用正是问题所在。我的意思是,主窗口。我也看到了。它起作用了,谢谢。对侦听器的引用正是问题所在。我的意思是,MainWindow.this1+用于推荐使用
MainWindow.this
。1-推荐在最肯定不需要的情况下使用单例。因此,建议使用
主窗口的净投票率为0.1+。1-推荐在最肯定不需要的情况下使用单例。因此,净投票数为0。
  MainWindow extends JFrame {


    MainWindow(){



    }

    class panel1 extends JPanel implements ActionListener{


    }


    class panel2 extends JPanel implements ActionListener{


    }




}