高级swing组之菜单应用
1 菜单的基本概念
Menu包括两种:基于菜单条的:一般加在JFrame上
JPopupMenu:弹出式菜单
javax.swing.JMenuBar类:放置菜单的菜单条
javax.swing.JMenu:菜单目录对象
javax.swing.JMenuItem:菜单条目
关系:JMenuItem,JMenu都可以是JMenu的子项
(JMenuItem必须放在JMenu上)
JMenu必须放在JMenuBar上
2 基于菜单条
说明:已创建DrawBorder类,继承 JFrame;
(1)初始化窗体
public void initUI(){
this.setTitle("简单的菜单界面");
this.setLayout(new java.awt.FlowLayout());
this.setSize(300,500);
this.setDefaultCloseOperation(3);
this.setResizable(true);
this.setJMenuBar(this.getMenu());
DrawListener dl=new DrawListener(this);
this.addMouseListener(dl);
//将JDesktopPane对象放到面板上
this.setContentPane(jdp);//jdp在类的头部已声明
this.setVisible(true);
}
(2)取得菜单条函数getMenu()
思路:将菜单条目加到菜单目录上,将菜单目录加到菜单条上,将菜单条返回
给菜单条目加监听器,执行统一的处理方法
public JMenuBar getMenu(){
//实例化菜单条
JMenuBar mb=new JMenuBar();
//实例化菜单目录对象
JMenu jm=new JMenu("文件");
//实例化菜单条目
JMenuItem mi=new JMenuItem("新建");
JMenuItem mi1=new JMenuItem("退出");
JMenu jm1=new JMenu("编辑");
JMenuItem mii=new JMenuItem("修改");
JMenuItem mii1=new JMenuItem("退出");
//创建内部类的菜单事件监听器对象
ActionListener ac_listener=new ActionListener(){
//调用统一的处理方法
public void actionPerformed(ActionEvent e){
processMenuEvent(e);
}
};
//给菜单条目添加监听器
mi.addActionListener(ac_listener);
mi1.addActionListener(ac_listener);
mii.addActionListener(ac_listener);
mii1.addActionListener(ac_listener);
//将菜单条目添加到菜单目录上
jm.add(mi);
jm.add(mi1);
jm1.add(mii);
jm1.add(mii1);
//将菜单目录添加到菜单条上
mb.add(jm);
mb.add(jm1);
return mb;
}
(3)菜单事件的处理方法
根据菜单条目的不同执行相应的操作
private void processMenuEvent(ActionEvent e){
String command=e.getActionCommand();
if(command.equals("修改")){
//实例化内部窗体并设置属性
JInternalFrame jin=new JInternalFrame();
jin.setTitle("内部窗体");
jin.setSize(200,300);
jin.setVisible(true);
jin.setMaximizable(true);
jdp.add(jin);
}else if(command.equals("新建")){
//弹出一个对话框
JOptionPane.showInputDialog("要创建什么?");
//程序退出
}else if(command.equals("退出")){
System.exit(0);
}
}
3 弹出菜单
说明:在监听器中进行
(1)使用构造方法将窗体传到监听器中
在mousePressed方法中取得点击的点坐标,在该位置弹出菜单
public void mousePressed(MouseEvent e) {
x=e.getX();
y=e.getY();
JPopupMenu jp=getPop();
jp.show(jf, x, y);
}
(2)取得弹出菜单
在弹出菜单中添加菜单目录,目录上添加菜单条目,返回弹出菜单
public JPopupMenu getPop(){
JPopupMenu pm=new JPopupMenu();
JMenuItem mi=new JMenuItem("刷新");
JMenuItem mi1=new JMenuItem("复制");
JMenuItem mi2=new JMenuItem("粘贴");
pm.add(mi);
pm.add(mi1);
pm.add(mi2);
return pm;
}
分享到:
相关推荐
html实现好看的多种风格导航菜单(附源码),导航菜单,源码下载,分为顶部导航菜单,悬浮按钮菜单,右键功能菜单,左侧导航菜单四种导航菜单。每种导航菜单有至少三种风格,总共23种风格,各种风格都有,代码上手简单,...
菜单结构为: 系统(启动、退出)操作(升温、降温)、帮助 菜单行为如下: 1)当VI初始运行时,升温和降温两个菜单项处于无效(Disable)状态,当用户点击启动菜单项后,这两个菜单变为使能(Enable)状态,同时启动...
微信小程序 圆形菜单 (源码)微信小程序 圆形菜单 (源码)微信小程序 圆形菜单 (源码)微信小程序 圆形菜单 (源码)微信小程序 圆形菜单 (源码)微信小程序 圆形菜单 (源码)微信小程序 圆形菜单 (源码)微信小程序 圆形...
12864 实现菜单在,单片机控制中作为人机交换中起了很大的作用,就像叫一个人用高科技的设备,但是复杂,但是做成菜单一样玩起来和手机没什么区别简单。很好用希望同志 笑纳咯 要看效果可以到我的博客看看: ///...
完美实现真彩自绘菜单 相当不错的源码 1、MFC框架调用的GetMenu()->MeasureItem()就相当于调用了CMenuEx::MeasureItem(),从而实现自绘菜单控件尺寸的测量。 2、MFC框架调用GetMenu()->DrawItem()就相当于调用了...
微信小程序源码 圆形菜单(学习版)微信小程序源码 圆形菜单(学习版)微信小程序源码 圆形菜单(学习版)微信小程序源码 圆形菜单(学习版)微信小程序源码 圆形菜单(学习版)微信小程序源码 圆形菜单(学习版)微信小程序源码...
微信小程序 轮播图+菜单 (源码)微信小程序 轮播图+菜单 (源码)微信小程序 轮播图+菜单 (源码)微信小程序 轮播图+菜单 (源码)微信小程序 轮播图+菜单 (源码)微信小程序 轮播图+菜单 (源码)微信小程序 轮播图+菜单 ...
HTML竖排菜单制作,美观的竖排菜单,制作竖排菜单时可能用得到
超酷的仿flash特效菜单 超漂亮的电子商务管理平台模板 橙色的CSS团购网站首页菜单模板 多风格多功能后台管理模板 淡蓝色的二级CSS导航菜单 非常大气个性的jquery下拉menu 非常大气适合QQ空间网站的CSS导航菜单...
51单片机控制12864显示多级调试菜单
51单片机液晶显示,菜单具备多级菜单,配合按键操作
在Coreldraw 工具栏鼠标点击 右键----菜单----自定义----工作区----导入工作区---选择要导入的工作区文件 窗口,浏览-选择“win10_x4菜单.xslt”文件,例如选择工作区“WIN10下_x4.x5.x6菜单文件”文件夹下的“win10...
名称:GXD LCD多层菜单 v1.2.1 作者:中国传惠 TranSmart gongxd@126.com 特点: 可以在液晶LCM上显示最大254层深度的菜单,可以非常方便的使用和移植。 字符型显示适用于St7920控制芯片。 图像显示适用于st7656控制...
1、格式化或GHOST活动分区(C盘)重装系统后添加修复其它分区上的Vista/2008/Win7启动菜单 2、在Vista/2008/Win7上新装2000/xp/2003后添加修复原Vista/2008/Win7启动菜单 简化出先vista/2008/win7后装2000/xp/2003多...
C#向窗体的系统菜单添加菜单项C#向窗体的系统菜单添加菜单项C#向窗体的系统菜单添加菜单项C#向窗体的系统菜单添加菜单项
文档中包括Android实现上下文菜单、下拉菜单、选项菜单代码以及截图,亲测可用!!!
Js实现旋转导航菜单,r半径,dv偏移量,w图片宽度,x菜单横坐标,y菜单纵坐标,pn菜单图片数量,当图片旋转到圆的正面时,传入当前图片移动的横坐标,正弦值对应为负弧度,即图片旋转到圆的背面,传入当前图片移动的横...
js 菜单js 菜单js 菜单js 菜单js 菜单js 菜单js 菜单js 菜单js 菜单js 菜单js 菜单js 菜单js 菜单js 菜单js 菜单js 菜单js 菜单js 菜单js 菜单js 菜单js 菜单js 菜单js 菜单js 菜单js 菜单js 菜单js 菜单js 菜单js ...
Office2007经典菜单EXCEL&PPT;(绿色版) 此版本为绿色版(推荐只使用EXCEL和PPT,world有BUG.)解压以下文件到:office安装目录(如:"C:\Program Files\Microsoft Office\Office12\ADDINS" ExcelMenu.dll PowerPointMenu...
jsp实现级联菜单jsp实现级联菜单jsp实现级联菜单jsp实现级联菜单jsp实现级联菜单