目次
1. メニュー項目の構成要素の紹介
メニューの概念について詳しく説明する必要はないと思いますが、平たく言えば、メニューとは私たちが行う選択の表示です。
通常使用するメニュー コンポーネントは次のとおりです。
菜单组件名称 功能 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メニューの利用
場合:
要件: 以下のパネル コンテナのメニューを右クリックし、クリック後にテキスト領域に対応する情報を出力します。
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(); } }