菜单栏JMenuBar,菜单JMenu,菜单项JMenuItem

一旦A有子菜单项,则A为菜单JMenu,而不是菜单项JMenuItem

import javax.swing.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.KeyEvent; public class Demo extends JFrame {
public Demo(){
setTitle("菜单栏");
setBounds(100,100,200,200);
setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE); JMenuBar menuBar=new JMenuBar();//菜单栏
setJMenuBar(menuBar);//设置为窗体的菜单栏
//菜单1
JMenu menu=new JMenu("菜单(F)");//菜单
menuBar.add(menu);
menu.setMnemonic(KeyEvent.VK_F);//快捷键Alt+F JMenuItem menuItem=new JMenuItem("菜单项(O)");//菜单项
menu.add(menuItem);
menuItem.addActionListener(new ItemListener());//给菜单项添加动作监听
Icon icon=new ImageIcon("src/img.JPG");//菜单项的logo
menuItem.setIcon(icon);
menuItem.setMnemonic(KeyEvent.VK_O);//快捷键Alt+F打开菜单后,按O menu.addSeparator();//菜单项之后,添加分隔线 JMenu menu12=new JMenu("菜单12");//一旦有子类,则为菜单,而不是菜单项。
menu.add(menu12); JMenuItem menuItem121=new JMenuItem("菜单项121");
JMenuItem menuItem122=new JMenuItem("菜单项122");
menu12.add(menuItem121);
menu12.add(menuItem122);
menuItem121.addActionListener(new ItemListener());//给菜单项添加动作监听
menuItem122.addActionListener(new ItemListener());//给菜单项添加动作监听
//菜单2
JMenu menu2=new JMenu("菜单2");
menuBar.add(menu2);
} public static void main(String[] args) {
Demo frame=new Demo();
frame.setVisible(true);
} private class ItemListener implements ActionListener{//自定义动作监听
public void actionPerformed(ActionEvent e) {
JMenuItem menuItem=(JMenuItem) e.getSource();//获得触发此事件的菜单项
System.out.println("被单击的菜单项是:"+menuItem.getText());//获得文本
}
}
}

高级组件——菜单栏JMenuBar的更多相关文章

  1. Ext.js高级组件

    第二章:Ext.js高级组件 grid组件 普通方式 表格面板类Ext.grid.Panel xtype(别名):gridpanel.grid title标题.renderTo渲染至.width宽.h ...

  2. Ext JS 6学习文档-第6章-高级组件

    Ext JS 6学习文档-第6章-高级组件 高级组件 本章涵盖了高级组件,比如 tree 和 data view.它将为读者呈现一个示例项目为 图片浏览器,它使用 tree 和 data view 组 ...

  3. UI高级组件

    今天继续学习UI高级组件 网格视图 GridView 用GridView标签添加,显示网格视图,需要用到适配器,共有四种适配器 ArrayAdapter,SmipleAdapter,SmipleCou ...

  4. 十六、Swing高级组件

    1.利用JTable类直接创建表格 (1)创建表格 构造方法:JTable(Object rowData,Object[] columnNames) (2)定制表格 编辑:isCellEditable ...

  5. Ext学习-高级组件介绍

    在这一部分的学习中,主要是学习一些比较特殊的组件. 1.图表 2.日历 3.颜色,日期,时间的选择器 4.滑动条 5.各种工具类 参考文档:http://docs.sencha.com/extjs/4 ...

  6. ExtJS4.2学习(11)——高级组件之Grid

    大纲: 1.首先,搭建起来一个最基础的Grid组件: 2.其次,利用前边MVC架构将代码重构: 3.再者,介绍下Grid的一些特性. 一.搭建基础的Grid组件 在文章的开始,我们首先简单的搭建一个G ...

  7. 高级组件——表格模型TableModel

    通常增删改表格,多使用表格模型,效率更高.具体通过DefaultTableModel类中的方法来实现. TableModel接口——AbstractTableModel抽象类——DefaultTabl ...

  8. vue高级组件之provide / inject

    转载:https://blog.csdn.net/Garrettzxd/article/details/81407199 在vue中不同组件通信方式如下 1.父子组件,通过prop 2.非父子组件,通 ...

  9. 高级组件——表格JTable

    JTable(Object[][] rowData,Object[] columnNames)                         表格数据              列名集合 setSe ...

随机推荐

  1. 解决post、get端中文乱码问题

    在web.xml中配置: <filter> <filter-name>CharacterEncodingFilter</filter-name> <filte ...

  2. Lodop控件NewPage();测试输出空白页

    LODOP.NewPage();和LODOP.NewPageA();是强制分页语句,两者的区别可查看本博客的相关博文:Lodop强制分页LODOP.NewPage()和LODOP.NewPageA() ...

  3. fpm 打包教程

    常用yum命令: Yum安装时需要安装到指定的文件夹,则需要 --installroot yum install --installroot=/usr/src/ vim 常用rpm命令: 常用yum仓 ...

  4. Matplotlib学习---用matplotlib画误差线(errorbar)

    误差线用于显示数据的不确定程度,误差一般使用标准差(Standard Deviation)或标准误差(Standard Error). 标准差(SD):是方差的算术平方根.如果是总体标准差,那么用σ表 ...

  5. Go Deeper HDU - 3715(2 - sat 水题 妈的 智障)

    Go Deeper Time Limit: 4000/2000 MS (Java/Others)    Memory Limit: 65536/65536 K (Java/Others)Total S ...

  6. bzoj 2653: middle (主席树+二分)

    2653: middle Time Limit: 20 Sec  Memory Limit: 512 MBSubmit: 2522  Solved: 1434[Submit][Status][Disc ...

  7. 【原创】【状态压缩DP】POJ3254 Corn Fields【新手向】

    一开始根本不会状压dp,上网各种找题解,但发现他们写的都很......反正我作为一个没有接触过状态压缩的,根本看不懂! 然后看了好多状态压缩的题的题解,总结了一下思路,思路很重要,有了思路转换成计算机 ...

  8. 使用jvisualVm监控本地和远程的jvm

    jvisualVm是jdk自带的可视化监控工具,功能很强大,可安装各种扩展插件.本篇不打算讲解如果使用详细的功能,只讲在windows环境怎么监控本地和远端(一般是无界面的linux系统)的java进 ...

  9. luogu4728 双递增序列 (dp)

    设f[i][j]表示以i位置为第一个序列的结尾,第一个序列的长度为j,第二个序列的结尾的最小值 那么对于f[i][j],有转移$f[i+1][j+1]=min\{f[i+1][j+1],f[i][j] ...

  10. 洛谷P4243/bzoj1558 [JSOI2009]等差数列(线段树维护差分+爆炸恶心的合并)

    题面 首先感谢这篇题解,是思路来源 看到等差数列,就会想到差分,又有区间加,很容易想到线段树维护差分.再注意点细节,\(A\)操作完美解决 然后就是爆炸恶心的\(B\)操作,之前看一堆题解的解释都不怎 ...