import java.awt.*;
class TestPopupMenu
{
public static void main(String[] args)
{
Frame f = new Frame("TestMenuComponent");
f.setSize(500,300);
f.setBackground(Color.lightGray);
MenuBar mb = new MenuBar();
f.setMenuBar(mb);
PopupMenu pm = new PopupMenu("弹出式菜单");
mb.add(pm);
/*
容易在中文状态下打出分号,报错提示:非法字符\65307
纠错过程:根据Unicode,将65307换算成16进制为FF1B,查找到对应的字符为中文
状态下的分号
*/
MenuItem m1 = new MenuItem("菜单1");
MenuItem m2 = new MenuItem("菜单2");
MenuItem m3 = new MenuItem("菜单3");
pm.add(m1);
pm.add(m2);
pm.add(m3);
//f.add(pm); 这句不能加上,否则窗口中看不到popupmenu
f.setVisible(true);
//本示例中没有弹出效果,可能是因为没有加入“事件监听”
}
}
在写语句
MenuItem m1 = new MenuItem("菜单1");
时,误在中文输入状态下输入了分号,运行时报错:非法字符 \65307
经分析,因为字符编码是Unicode字符集,所以想到将65307化为16进制,也就是FF1B,查阅unicode字符集,找到了对应的中文输入法下的分号,这才发现自己写代码时输入错误!