📄 mymenu1.java
字号:
import java.awt.*;
import java.awt.event.*;
import java.applet.*;
public class MyMenu1 extends Applet {
MyFrame f=new MyFrame("hi"); //定义标题为hi的窗口
Button b1=new Button("open"); //定义open按钮
Button b2=new Button("close"); //定义close按钮
TextField tf1=new TextField(20);
MenuBar mb1=new MenuBar(); //菜单栏mb1说明
Menu fi=new Menu("Flie"); //菜单File说明
Menu e=new Menu("Edit"); //菜单Edit说明
Menu s=new Menu("Search"); //菜单Search说明
Menu v=new Menu("View"); //菜单View说明
CheckboxMenuItem[] vie= //View菜单的子菜单说明
{
new CheckboxMenuItem("Text"),
new CheckboxMenuItem("Html")
};
MenuItem[] file={ //File菜单的子菜单说明
new MenuItem("Open",new MenuShortcut(KeyEvent.VK_O)),
//定义以ctrl_o为快捷键的菜单项
new MenuItem("Save",new MenuShortcut(KeyEvent.VK_S)),
new MenuItem("Exit",new MenuShortcut(KeyEvent.VK_E))
};
MenuItem[] edit={ //Edit菜单的子菜单说明
new MenuItem("Copy",new MenuShortcut(KeyEvent.VK_C)),
new MenuItem("Cut",new MenuShortcut(KeyEvent.VK_U)),
new MenuItem("Paste",new MenuShortcut(KeyEvent.VK_P))
};
MenuItem[] search={ //Search菜单的子菜单说明
new MenuItem("Find",new MenuShortcut(KeyEvent.VK_F)),
new MenuItem("Replace",new MenuShortcut(KeyEvent.VK_R))
};
ML ml1=new ML(); //监听类对象,用于监听菜单引发的动作事件
MIL mil1=new MIL(); //监听选项事件
WL fwl=new WL(); //监听窗口的 是否被点击
public void init() {
add(b1);
add(b2);
add(tf1);
f.setMenuBar(mb1); //窗口中加入菜单栏mb1
mb1.add(fi); //菜单栏中加入File菜单
for (int i=0;i<file.length ;i++){ //File菜单中加入子菜单
fi.add(file[i]);
}
for (int i=0;i<vie.length ;i++){ //View菜单中加入子菜单
v.add(vie[i]);
}
fi.add(v);
//将view菜单作为File菜单的一级子菜单,view本身的子菜单为二级子菜单
mb1.add(e); // 菜单栏中加入edit菜单
for (int i=0;i<edit.length ;i++){ //Edit菜单中加入子菜单
e.add(edit[i]);
}
mb1.add(s); // 菜单栏中加入search菜单
for (int i=0;i<search.length;i++){ //Search菜单中加入子菜单
s.add(search[i]);
}
b1.addActionListener(new B1L()); //设置按钮的监听者
b2.addActionListener(new B2L());
file[0].setActionCommand("Open");
/*设置File菜单前三项的监听者时,先定义与菜单相关联的动作命令字符串,在监听类代码中用getActionCommand( )取得这一字符串*/
file[0].addActionListener(ml1); //设置file菜单的open子菜单的监听者
file[1].setActionCommand("Save");
file[1].addActionListener(ml1);
file[2].setActionCommand("Exit");
file[2].addActionListener(ml1);
vie[0].setActionCommand("Text"); //设置File菜单的View子菜单的监听者
vie[0].addItemListener(mil1);
vie[1].setActionCommand("Html");
vie[1].addItemListener(mil1);
f.addWindowListener(fwl); //设置对窗口的 的监听者
f.setSize(200,300);
}
class WL extends WindowAdapter { //窗口的 的监听类
public void windowClosing(WindowEvent e) {
f.setVisible(false);
}
}
class B1L implements ActionListener{ //按钮open的监听类
public void actionPerformed(ActionEvent e) {
f.setVisible(true);
}
}
class B2L implements ActionListener { //按钮close的监听类
public void actionPerformed(ActionEvent e) {
f.setVisible(false);
}
}
class MyFrame extends Frame { //窗口的类
Label l1=new Label("My Applet Frame"); //定义窗口中的标签
TextField tf=new TextField(20); //定义窗口中的文本域
MyFrame(String s) {
super(s); //窗口的构造方法中先调用父类的构造方法
setLayout(new FlowLayout());
add(l1);
tf.setEditable(false);
add(tf);
tf.setText("I am in the frame");
}
}
class ML implements ActionListener{ //菜单中动作事件的监听类
public void actionPerformed(ActionEvent e) {
MenuItem target=(MenuItem)e.getSource(); //取得事件源
String ac=target.getActionCommand();
//取得事件源的与菜单相关联的动作命令字符串
if(ac.equals("Open")) {
tf1.setText("select open"); //若点击的是File菜单的Open,则在tf1中显示select open
}
else if(ac.equals("Save")) {
tf1.setText("select save"); //点击File菜单的Save则在tf1中显示select save
}
else if(ac.equals("Exit")) { //点击File菜单的Exit则关闭窗口
f.setVisible(false);
}
}
}
class MIL implements ItemListener{ //确定View菜单的选项
public void itemStateChanged(ItemEvent e){
CheckboxMenuItem target=(CheckboxMenuItem)e.getSource();//取得事件源
String acommand=target.getActionCommand();
//取得事件源的与菜单相关联的动作命令字符串
if (acommand.equals("Text")) tf1.setText("Text is "+target.getState());
else if (acommand.equals("Html")) tf1.setText("Html is "+target.getState());
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -