📄 test.java
字号:
/*
编写三个弹出式菜单。要求:
如果按<Ctrl>键,点击鼠标右键弹出[字号]菜单。
如果按<Shift>键,点击鼠标右键弹出[命令]菜单。
否则,点击鼠标右键弹出[编辑]菜单。
其中字号里内容是
───────
字号菜单
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());
}
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -