这在Swing比在需要是更困难的方式。因此,我不是指向你的教程,我创建了一个完全工作的例子。

import javax.swing.*;

import java.awt.*;

import java.awt.event.ActionEvent;

import java.awt.event.MouseAdapter;

import java.awt.event.MouseEvent;

public class ToolbarDemo {

public static void main(String[] args) {

final JFrame frame = new JFrame();

frame.setPreferredSize(new Dimension(600, 400));

final JToolBar toolBar = new JToolBar();

//Create the popup menu.

final JPopupMenu popup = new JPopupMenu();

popup.add(new JMenuItem(new AbstractAction("Option 1") {

public void actionPerformed(ActionEvent e) {

JOptionPane.showMessageDialog(frame, "Option 1 selected");

}

}));

popup.add(new JMenuItem(new AbstractAction("Option 2") {

public void actionPerformed(ActionEvent e) {

JOptionPane.showMessageDialog(frame, "Option 2 selected");

}

}));

final JButton button = new JButton("Options");

button.addMouseListener(new MouseAdapter() {

public void mousePressed(MouseEvent e) {

popup.show(e.getComponent(), e.getX(), e.getY());

}

});

toolBar.add(button);

frame.getContentPane().add(toolBar, BorderLayout.NORTH);

frame.pack();

frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

frame.setLocationRelativeTo(null);

frame.setVisible(true);

}

}

怎样创建两个菜单JAVA_java – 如何创建一个菜单的JButton?相关推荐

  1. 创建两个Thread子类,第一个用run()方法启动,并捕获第二个Thread对象的句柄,然后调用wait()。第二个类的run()方法几秒后为第一个线程调用notifAll(),使第一个线程打印消息

    创建两个Thread子类,第一个用run()方法启动,并捕获第二个Thread对象的句柄,然后调用wait().第二个类的run()方法几秒后为第一个线程调用notifAll(),使第一个线程打印消息 ...

  2. vant树型菜单多级_无限层级菜单—左右值树型数据结构

    在上一篇博客中,我提到了后台菜单的问题.其实我不想写,因为比较久了,都差不多忘了,只记得当时理解得很痛苦. 下面这个菜单是一个多层级菜单的,在 计算机中心 菜单下,有6个子菜单,在子菜单 微信管理 下 ...

  3. 微信自定义菜单java_Java微信公众平台开发(九)--微信自定义菜单的创建实现

    自定义菜单这个功能在我们普通的编辑模式下是可以直接在后台编辑的,但是一旦我们进入开发模式之后我们的自定义菜单就需要自己用代码实现,所以对于刚开始接触的人来说可能存在一定的疑惑,这里我说下平时我们在开发 ...

  4. 使用VS的MFC应用创建单文档应用并添加对话框菜单和工具栏

    本教程是基于Visual Studio 2019的VC++大作业. 市面上大部分书本教程都使用Microsoft Visual C++工具创建,VS的教程全网少之又少. 故而本教程给初学者避雷,以单文 ...

  5. Java的JFrame窗体的创建(两种方法)

    第一种直接创建 package com.jwz.h综合项目;import javax.swing.*;public class Test {public static void main(String ...

  6. python用sqlite数据库创建的表在哪里_用Python在sqlite3数据库中创建两个表

    我似乎找到了很多关于如何使用两个表的教程,但我似乎不知道如何创建两个表.我可能错过了一些很简单的东西.在 我想为"我的"数据"1"和"我的" ...

  7. python中使用zip函数基于两个列表数据list创建字典dict数据(Create a dictionary by passing the output of zip to dict)

    python中使用zip函数基于两个列表数据list创建字典dict数据(Create a dictionary by passing the output of zip to dict) 目录

  8. R创建两个变量的直方图

    R创建两个变量的直方图 直方图是可视化给定变量值分布的有效方法. 要为R中的一个变量创建直方图,可以使用hist()函数.要为R中的两个变量创建直方图,可以使用以下语法: hist(variable1 ...

  9. Git 创建两个“本地分支”协同工作

    一 代码拉下来后,首先创建两个本地分之 $repo start master . //仅仅用于同步服务器的修改(此处master名字可以随意定,但是建议定成这样,好记忆) $repo start wo ...

最新文章

  1. 复制、移动和删除:cp, rm, mv
  2. Scikit-learn数据预处理分类变量编码之字段特征编码
  3. 【Linux】一步一步学Linux——dpkg-query命令(271)
  4. PHP 入门 - 4.正则表达式
  5. 第一个Django应用程序_part1
  6. mounted钩子函数_怎样实现Vue中mounted钩子函数获取节点高度
  7. 【动态规划】LeetCode 63. Unique Paths II
  8. 如何在Mac 上的“自动操作”中使用所选文件创建工作流程?
  9. IP 防护等级技术白皮书
  10. 华为nova4e可以升级鸿蒙系统吗,华为nova4e官方出厂固件rom刷机包下载_原版系统强刷升级更新包...
  11. VXLAN 技术解析-(1)VXLAN简述
  12. 蓝桥本第九届省赛刷题记录
  13. python批量爬取京东手机评论信息及星级
  14. ”微服务一条龙“最佳指南-工具篇:初步使用Pipenv
  15. dumb-init:一个Docker容器初始化系统
  16. Eclipse+Pydev搭建Python开发环境教程
  17. VS C++ 和 MCR 调用MATLAB DLL
  18. centos7 搭建ngnix+vsftp服务器
  19. “移”步到位:一站式移动应用研发体系
  20. 中级微观经济学:Chap 3 偏好

热门文章

  1. ASP.NET MVC5+EF6+EasyUI 后台管理系统(51)-系统升级
  2. POJ 1719 Shooting Contest
  3. Spring中HibernateTemplate类的使用
  4. MSMQ(MicroSoft Message Queue,微软消息队列)
  5. [导入]九个笑话能告诉你九个人生的道理
  6. 卸载一直在创建还原点_如何创建系统还原点以及如何恢复?
  7. C#图片按指定大小分割
  8. arrayrand php,php中array_rand函数的功能起什么作用呢?
  9. spring boot集成oss
  10. 适用于ELment-UI级联多选框,数据回填,根据子节点的值查找完整路径