06Linuxwuliqiang.blog.chinaunix.net
linux_wuliqiang
业精于勤,荒于嬉
全部博文(763)
生活小常识(7)
git(3)
Socket(12)
Bash(1)
命令(Commond)(7)
服务器(32)
Linux内核(0)
vi_gcc_gdb_emacs(3)
Makefile(8)
C++容器(7)
项目管理(0)
代码管理(3)
Android(18)
MTK(3)
Iphone(109)
Symbian(0)
点阵字库(3)
环境搭建(1)
寻路算法(2)
字库相关(2)
Unity3D(17)
MD2_3D动画显示(1)
地图相关(11)
Hge Engine(0)
Cocos2d(14)
文件解析(3)
图片解析(11)
OpenGL(53)
游戏架构(1)
ECMAScript(1)
Flash(0)
Html5(11)
Jsp(6)
Eclipse(4)
J2ee_project(0)
文件上传(0)
UI(0)
J2ME(14)
reportTable(0)
2018年(6)
2017年(15)
2016年(2)
2015年(31)
2014年(14)
2013年(87)
2012年(75)
2011年(94)
2010年(190)
2009年(38)
2008年(183)
2007年(28)
Tay_linu
niao5929
shencz20
qssjh035
mugua250
youngmam
xixichen
CU官方博
commshar
Rayvong
leonlinl
leleston
smile124
甜菜妙妙
test1
xinshou6
bingor
speed
分类: Java
2008-11-04 10:40:25
import javax.swing.*; import java.awt.event.*; public class demoRightMenu extends JFrame { JMenu fileMenu; JPopupMenu jPopupMenuOne; JMenuItem openFile,closeFile,exit;分别对每个按钮添加事件处理就OK了.. JRadioButtonMenuItem copyFile,pasteFile; ButtonGroup buttonGroupOne; public demoRightMenu(){ jPopupMenuOne = new JPopupMenu();//创建jPopupMenuOne对象 buttonGroupOne=new ButtonGroup(); //创建文件菜单及子菜单,并将子菜单添加到文件菜单中 fileMenu =new JMenu("文件"); openFile=new JMenuItem("打开"); 分别对每个按钮添加事件处理就OK了.. closeFile=new JMenuItem("关闭"); fileMenu.add(openFile); fileMenu.add( closeFile); jPopupMenuOne.add(fileMenu);//将fileMenu菜单添加到弹出式菜单中 jPopupMenuOne.addSeparator();//添加分割符 //创建单选菜单项,并添加到ButtonGroup对象中 copyFile=new JRadioButtonMenuItem("复制"); pasteFile=new JRadioButtonMenuItem("粘贴"); //group 只负责维护组之间的逻辑关系 buttonGroupOne.add(copyFile); buttonGroupOne.add(pasteFile); jPopupMenuOne.add(copyFile);//将copyFile添加到jPopupMenuOne中 jPopupMenuOne.add(pasteFile);//将pasteFile添加到jPopupMenuOne中 jPopupMenuOne.addSeparator(); exit=new JMenuItem("退出"); jPopupMenuOne.add(exit);//将exit添加到jPopupMenuOne中 //创建监听器对象 MouseListener popupListener = new PopupListener(jPopupMenuOne); this.addMouseListener(popupListener);//向主窗口注册监听器 this.setTitle("弹出式菜单的简单使用"); this.setBounds(100,100,250,150); this.setVisible(true); this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); } public static void main(String args[]){ new demoRightMenu(); } //添加内部类,其扩展了MouseAdapter类,用来处理鼠标事件 class PopupListener extends MouseAdapter { JPopupMenu popupMenu; PopupListener(JPopupMenu popupMenu) { this.popupMenu = popupMenu; } public void mousePressed(MouseEvent e) { showPopupMenu(e); } public void mouseReleased(MouseEvent e) { showPopupMenu(e); } private void showPopupMenu(MouseEvent e) { if (e.isPopupTrigger()) {//如果当前事件与鼠标事件相关,则弹出菜单 //关键的是这句,控制显示的。。 popupMenu.show(e.getComponent(),e.getX(), e.getY()); }//结束if }//结束showPopupMenu } //结束内部类PopupListener }//结束DemoJPopupMenu
import javax.swing.*; import java.awt.event.*; public class demoRightMenu extends JFrame { JMenu fileMenu; JPopupMenu jPopupMenuOne; JMenuItem openFile,closeFile,exit;
分别对每个按钮添加事件处理就OK了..
JRadioButtonMenuItem copyFile,pasteFile; ButtonGroup buttonGroupOne; public demoRightMenu(){ jPopupMenuOne = new JPopupMenu();//创建jPopupMenuOne对象 buttonGroupOne=new ButtonGroup(); //创建文件菜单及子菜单,并将子菜单添加到文件菜单中 fileMenu =new JMenu("文件"); openFile=new JMenuItem("打开");
closeFile=new JMenuItem("关闭"); fileMenu.add(openFile); fileMenu.add( closeFile); jPopupMenuOne.add(fileMenu);//将fileMenu菜单添加到弹出式菜单中 jPopupMenuOne.addSeparator();//添加分割符 //创建单选菜单项,并添加到ButtonGroup对象中 copyFile=new JRadioButtonMenuItem("复制"); pasteFile=new JRadioButtonMenuItem("粘贴"); //group 只负责维护组之间的逻辑关系 buttonGroupOne.add(copyFile); buttonGroupOne.add(pasteFile); jPopupMenuOne.add(copyFile);//将copyFile添加到jPopupMenuOne中 jPopupMenuOne.add(pasteFile);//将pasteFile添加到jPopupMenuOne中 jPopupMenuOne.addSeparator(); exit=new JMenuItem("退出"); jPopupMenuOne.add(exit);//将exit添加到jPopupMenuOne中 //创建监听器对象 MouseListener popupListener = new PopupListener(jPopupMenuOne); this.addMouseListener(popupListener);//向主窗口注册监听器 this.setTitle("弹出式菜单的简单使用"); this.setBounds(100,100,250,150); this.setVisible(true); this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); } public static void main(String args[]){ new demoRightMenu(); } //添加内部类,其扩展了MouseAdapter类,用来处理鼠标事件 class PopupListener extends MouseAdapter { JPopupMenu popupMenu; PopupListener(JPopupMenu popupMenu) { this.popupMenu = popupMenu; } public void mousePressed(MouseEvent e) { showPopupMenu(e); } public void mouseReleased(MouseEvent e) { showPopupMenu(e); } private void showPopupMenu(MouseEvent e) { if (e.isPopupTrigger()) {//如果当前事件与鼠标事件相关,则弹出菜单 //关键的是这句,控制显示的。。 popupMenu.show(e.getComponent(),e.getX(), e.getY()); }//结束if }//结束showPopupMenu } //结束内部类PopupListener }//结束DemoJPopupMenu
// 注: 如果要添加右键菜单的事件处理, 分别对每个按钮添加事件处理就OK了..
上一篇:J2ME程序开发全方位基础讲解汇总(3)
下一篇:弹出式菜单—JPopupMenu
chinaunix网友2008-11-04 10:48:01
这句用来显示菜单,很重要哦.. private void MousePressed(java.awt.event.MouseEvent evt) { if(evt.isPopupTrigger()) { jPopupMenu1.show(evt.getComponent(), evt.getX(), evt.getY()); } }
登录 注册