【问题标题】:How do i pass a main element to an Actionlistener如何将主要元素传递给 Actionlistener
【发布时间】:2016-03-25 13:31:44
【问题描述】:

我正在开发一个小游戏,我想创建一个ItemMenu(“解决”),但要使用它,我需要在我的主类中使用一个元素。例如:

public final class FileMenu extends JMenu
{
    public FileMenu(GameFrame gameFrame)
    {
        super("File") ;
        JMenuItem solve = new JMenuItem("Solve");
        JMenuItem save = new JMenuItem("Save");
        JMenuItem load = new JMenuItem("Load");
        add(new QuitMenuItem(gameFrame)) ;
        add(solve);
        add(save);
        add(load);
    }
}

这是我的主要课程:

Maze maze = new Maze(height,width);
MainApplication Application = new MainApplication();

我需要为“解决”创建一个ActionListener,但要做到这一点,我需要“应用程序”,如何在FileMenu 中使用它?

【问题讨论】:

  • 您是否通过将MainApplication 的引用传递给FileMenu(就像您在GameFrame 中所做的那样)?
  • 什么是MainApplication
  • MainApplication 是一个类,我在其中编写了我的图形界面的一部分,例如它是创建窗口和我的游戏的所有视觉部分的界面

标签: java swing actionlistener menuitem extends


【解决方案1】:

这完全是关于使用 APIs 在类之间共享数据:
在 Class FileMenu 中:
存储对“解决”JMenuItem 的引用。
为 JMenuItem 创建一个“getter”API:getJMenuItem(...)

在主类中:
致电getJMenuItem(...).addActionListener(...)
如果您需要帮助了解如何使用菜单,您可以找到它here

【讨论】:

  • 我对 API 不是很熟悉,你能详细说明我如何创建一个 getJMenuItem(...) 吗?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-02-23
  • 2012-04-13
  • 2019-11-09
  • 1970-01-01
  • 2022-06-10
  • 2016-08-03
相关资源
最近更新 更多