加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Java > 正文

java – JMenu ActionListener

发布时间:2020-12-15 07:37:34 所属栏目:Java 来源:网络整理
导读:我想知道你是否可以测试是否点击了JMenu(而不是JMenuItem).我尝试添加一个ActionListener但它似乎没有认出它.我只需要在按下JMenu按钮时执行操作,以便我可以更改该菜单的JMenuItem,因为它打开了.欢迎所有工作以获得这个结果! 谢谢 解决方法 对于JMenu使用Me
我想知道你是否可以测试是否点击了JMenu(而不是JMenuItem).我尝试添加一个ActionListener但它似乎没有认出它.我只需要在按下JMenu按钮时执行操作,以便我可以更改该菜单的JMenuItem,因为它打开了.欢迎所有工作以获得这个结果!

谢谢

解决方法

>对于JMenu使用MenuListener

import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import javax.swing.event.*;

public class ActionExample {

    public ActionExample() {

        JMenu menu = new JMenu("Menu");
        menu.setMnemonic(KeyEvent.VK_M);
        menu.addMenuListener(new SampleMenuListener());
        JMenu menu1 = new JMenu("Tool");
        menu1.setMnemonic(KeyEvent.VK_T);
        menu1.addMenuListener(new SampleMenuListener());
        JFrame f = new JFrame("ActionExample");
        JMenuBar mb = new JMenuBar();
        mb.add(menu);
        mb.add(menu1);
        f.setJMenuBar(mb);
        f.setDefaultCloSEOperation(JFrame.EXIT_ON_CLOSE);
        f.pack();
        f.setLocationRelativeTo(null);
        f.setVisible(true);
    }

    public static void main(String[] args) {
        EventQueue.invokeLater(new Runnable() {

            @Override
            public void run() {
                ActionExample actionExample = new ActionExample();
            }
        });
    }
}

class SampleMenuListener implements MenuListener {

    @Override
    public void menuSelected(MenuEvent e) {
        System.out.println("menuSelected");
    }

    @Override
    public void menuDeselected(MenuEvent e) {
        System.out.println("menuDeselected");
    }

    @Override
    public void menuCanceled(MenuEvent e) {
        System.out.println("menuCanceled");
    }
}

>对于JMenuItem仅使用ButtonModel

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读