目录
一、菜单项组件的介绍
对于菜单的概念我想应该不需要细说了,通俗地来说,菜单就是对我们做出选择的一些展示出来的。
菜单组件我们常用的如下:
菜单组件名称 功能 MenuBar 菜单条,菜单的容器 Menu 菜单组件,菜单项的容器。他也是MenuItem的子类,所以可作为菜单项使用 MenuItem 菜单项组件 PopupMenu 上下文菜单组件(右键菜单组件) CheckboxMenuItem 复选框菜单项组件
二、实例
(1)基本菜单的搭建
案列:
需求:制作如图所示的界面,并给注释添加快捷键,同时点击注释在文本区域输出信息。
class Solution { //制造组件 public static void main(String[] args){ new Test().init(); } } public class Test { //组件 Frame s=new Frame("菜单练习"); MenuBar menubar=new MenuBar(); Menu wenjian=new Menu("文件"); Menu bianji=new Menu("编辑"); MenuItem zidong=new MenuItem("自动换行"); MenuItem fuzhi=new MenuItem("复制"); MenuItem zhantie=new MenuItem("粘贴"); Menu geshi=new Menu("格式"); //关联快捷键,ctrl+q+shift,true表示有shift MenuItem zhushi=new MenuItem("注释",new MenuShortcut(KeyEvent.VK_Q,true)); MenuItem quxiao=new MenuItem("取消注释"); TextArea area=new TextArea(6,40); public void init(){ //组装组件 zhushi.addActionListener(new ActionListener() { @Override public void actionPerformed(ActionEvent e) { area.append("你正在点击"+e.getActionCommand()+"\n"); } }); geshi.add(zhushi); geshi.add(quxiao); bianji.add(zidong); bianji.add(fuzhi); bianji.add(zhantie); bianji.add(geshi); menubar.add(bianji); menubar.add(wenjian); s.setMenuBar(menubar); s.add(area); s.pack(); s.setVisible(true); } }
(2)PopupMenu菜单的使用
案例:
需求:在下面panel容器中右键出现菜单,并且点击后在文本区域输出对应的信息
public class Test { //组件 Frame s=new Frame("练习"); TextArea area=new TextArea(10,40); Panel panel=new Panel(); MenuItem zhushi=new MenuItem("注释"); MenuItem quxiao=new MenuItem("取消注释"); MenuItem fuzhi=new MenuItem(":复制"); MenuItem save=new MenuItem("保存"); PopupMenu popupMenu=new PopupMenu(); public void init(){ //组装组件 ActionListener ac=new ActionListener() { @Override public void actionPerformed(ActionEvent e) { area.append("你当前点击的是:"+e.getActionCommand()+"\n"); } }; zhushi.addActionListener(ac); quxiao.addActionListener(ac); fuzhi.addActionListener(ac); save.addActionListener(ac); popupMenu.add(zhushi); popupMenu.add(quxiao); popupMenu.add(fuzhi); popupMenu.add(save); panel.add(popupMenu); panel.setSize(400,400); panel.addMouseListener(new MouseAdapter() { @Override public void mouseReleased(MouseEvent e) { if(e.isPopupTrigger()){ //返回值是true表示是右键点击 popupMenu.show(panel,e.getX(),e.getY()); } } }); Box b=Box.createVerticalBox(); b.add(area); b.add(panel); s.add(b); s.pack(); s.setVisible(true); } } class Solution { //制造组件 public static void main(String[] args){ new Test().init(); } }