www.pudn.com > lll.zip.rar > Applet1.java
/* 编写三个弹出式菜单。要求: 如果按键,点击鼠标右键弹出[字号]菜单。 如果按 键,点击鼠标右键弹出[命令]菜单。 否则,点击鼠标右键弹出[编辑]菜单。 其中字号里内容是 ─────── 字号菜单 20号 30号 40号 50号 ─────── 其中命令里内容是 ─────── 命令菜单 打开 保存 打印 退出 ─────── 其中编辑里内容是 ─────── 编辑菜单 复制 剪切 粘贴 删除 ─────── */ import javax.swing.*; //javax.swing.*这个包没有的话可以去网上找一下! import java.awt.event.*; class Test extends JFrame /* 这里我用了J组件,J2中有,老师的机子如果支持就好了! 如果不支持,可以导入JAVAHOME.JAVA\lib文件! 除了J组件外其他的事件与方法都和老师讲的一样! 请老师指正! */ { JPopupMenu p1,p2,p3; JMenuItem m11,m12,m13,m14,m21,m22,m23,m24,m31,m32,m33,m34; //boolean值表示 CTRL 键是否按下。 private boolean isCtrlPressing=false; //boolean值表示 SHIFT 键是否按下。 private boolean isShiftPressing=false; //构造方法,初始化本类。 public Test() { ini(); addKeyListener(new MyKeyListener()); addMouseListener(new MyMouseListener()); setTitle("菜单弹出事件"); setSize(500,400); setVisible(true); } //初始化组件。 public void ini() { p1=new JPopupMenu(); p2=new JPopupMenu(); p3=new JPopupMenu(); m11=new JMenuItem("20号"); m12=new JMenuItem("30号"); m13=new JMenuItem("40号"); m14=new JMenuItem("50号"); m21=new JMenuItem("打开"); m22=new JMenuItem("保存"); m23=new JMenuItem("打印"); m24=new JMenuItem("退出"); m31=new JMenuItem("复制"); m32=new JMenuItem("剪切"); m33=new JMenuItem("粘贴"); m34=new JMenuItem("删除"); p1.add(new JLabel("字号菜单")); p1.addSeparator(); p1.add(m11); p1.add(m12); p1.add(m13); p1.add(m14); p2.add(new JLabel("命令菜单")); p2.addSeparator(); p2.add(m21); p2.add(m22); p2.add(m23); p2.add(m24); p3.add(new JLabel("编辑菜单")); p3.addSeparator(); p3.add(m31); p3.add(m32); p3.add(m33); p3.add(m34); } public static void main(String args[]) { Test test=new Test(); } //键盘监听器。 class MyKeyListener extends KeyAdapter { public MyKeyListener(){} public void keyPressed(KeyEvent e) { //Ctrl键按下。 if(e.getKeyCode()==KeyEvent.VK_CONTROL) { isCtrlPressing=true; } //Shift键按下。 if(e.getKeyCode()==KeyEvent.VK_SHIFT) { isShiftPressing=true; } } } //鼠标监听器。 class MyMouseListener extends MouseAdapter { public MyMouseListener(){} //鼠标按下事件。 public void mousePressed(MouseEvent e) { showWhich(e); } private void showWhich(MouseEvent e) { //鼠标右键按下。 if(e.getButton()==MouseEvent.BUTTON3) { if(isCtrlPressing) { p1.show(e.getComponent(),e.getX(),e.getY()); isCtrlPressing=false; } else if(isShiftPressing) { p2.show(e.getComponent(),e.getX(),e.getY()); isShiftPressing=false; } else p3.show(e.getComponent(),e.getX(),e.getY()); } } } }