菜单栏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. echo显示颜色

    如有转载,不胜荣幸.http://www.cnblogs.com/aaron-agu/ [;;34m hello aaron \[0m”

  2. html5 表單輸入類型

    輸入類型有:email,url,number,range,Date pickers(工作機制是什麼),search, 有相關類型的輸入域,會對域進行驗證. 不同的瀏覽器並不一定都支持所有的輸入類型.

  3. Python——Radiobutton,Checkbutton参数说明

    anchor  : 文本位置: background(bg) : 背景色: foreground(fg) :前景色: borderwidth :  边框宽度: width   : 组件的宽度: hei ...

  4. vue 使用技巧总结 19.01

    组件中箭头函数的使用 不要使用箭头来定义任意生命周期钩子函数: 不要使用箭头来定义一个 methods 函数: 不要使用箭头来定义 computed 里的函数: 不要使用箭头定义 watch 里的函数 ...

  5. JSON in SQL Server 2016

    JSON functions in SQL Server enable you to analyze and query JSON data, transform JSON to relational ...

  6. JSON 解析 (三)—— FastJSON与Jackson比较

    一.方便性与性能 调用方便性而言: FastJSON提供了大量静态方法,调用简洁方便 Jackson须实例化类,调用相对繁琐,可通过封装成JSON工具类简化调用 性能而言: FastJSON反序列化的 ...

  7. excel导入、导出

    http://blog.csdn.net/cjh200102/article/details/12557599 NPOI 工作本HSSFWorkbook 构造方法,无参表示创建一个新的工作本,可以接收 ...

  8. 第十九天 标准目录与time 模块

      今日内容 1.目录规范 ***** (1)文件夹的规范写法 bin 可执行文件 conf 配置文件 core 主要业务逻辑 db 数据文件 lib 库 (公共代码 第三方模块) log 日志文件 ...

  9. 洛谷3705 [SDOI2017] 新生舞会 【01分数规划】【KM算法】

    题目分析: 裸题.怀疑$ O(n^4log{n}) $跑不过,考虑Edmonds-Karp优化. 代码: #include<bits/stdc++.h> using namespace s ...

  10. 【Gym 100947I】What a Mess

    BUPT 2017 summer training (for 16) #1D 题意 找到n个数里面有多少对具有倍数关系.\(1 ≤ n ≤ 10^4,2 ≤ a_i ≤ 10^6\) 题解 枚举一个数 ...