首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >JMenuitem -点击-动作- Java

JMenuitem -点击-动作- Java
EN

Stack Overflow用户
提问于 2012-01-14 03:07:29
回答 3查看 9K关注 0票数 1

我已经编写了在JMenuItem上执行单击事件的代码,但在调试时不会触发。(我知道我不应该在这个论坛上问这些问题,但我是这个论坛的新手)

代码语言:javascript
复制
public class ClsMenu extends JMenuItem implements ActionListener {

  JTextArea output;
  JScrollPane scrollPane;

  public ClsMenu(String text)
  {
    super(text);
    addActionListener(this);
  }

  public JMenuBar createMenu()
  {
    JMenuBar menuBar;
    JMenu menuFood,menuDrinks,menuParty;
    JMenuItem foodItem;


    menuBar=new JMenuBar();


    menuFood=new JMenu("Food");
    foodItem=new JMenuItem("Pizza");
    menuFood.add(foodItem);
    menuBar.add(menuFood);
    return menuBar;
  }
  public void createGUIandShow()
  {
    JFrame frame = new JFrame("Restuarant");
    frame.setJMenuBar(createMenu());
  }

  public void actionPerformed(ActionEvent e) {
    // TODO Auto-generated method stub
    System.out.println("item clicked"+e.getActionCommand());
  }
}

在这个调用中,我创建了一个对象

代码语言:javascript
复制
public class ClsMenuDisp {
  public static void main(String[] args) {
    // TODO Auto-generated method stub

    ClsMenu menu=new ClsMenu("testitem");
    menu.createGUIandShow();
  }
}
EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2012-01-14 03:26:58

您需要将ActionListener添加到要添加JMenu的菜单项中。您要做的是创建一个具有操作侦听器的菜单项。然后使用该菜单项的实例方法来创建一个完全不相关的JMenuBar/JMenu/JMenuItem,然后将其附加到该JFrame

票数 2
EN

Stack Overflow用户

发布于 2012-01-14 06:21:27

您的ClsMenu类实现了ActionListener,但并不是通过实现这样的接口,您才能自动接收事件。

您应该将ActionListener添加到您感兴趣的对象中,以便该对象知道它应该在适当的时间警告侦听器。在您的情况下,您对菜单感兴趣,所以您应该将侦听器添加到菜单中。

一些参考链接:

在添加Swing tutorial about menus

  • The Observer design pattern时使用
  1. Observer design pattern
票数 2
EN

Stack Overflow用户

发布于 2012-01-14 06:25:31

我正在写一些代码,这些代码可能会对你有用,例如:链接here

还有一个很好的教程here,这是我编写代码的基础。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/8855842

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档