zoukankan      html  css  js  c++  java
  • learning java AWT 右键菜单

    import java.awt.*;
    import java.awt.event.*;
    
    public class SimpleMenu {
        private Frame f  = new Frame("test");
        private MenuBar mb = new MenuBar();
        Menu file  =  new Menu("file");
        Menu edit  =  new Menu("edit");
    
        PopupMenu pop = new PopupMenu();
    
        MenuItem crateItem = new MenuItem("create");
        MenuItem saveItem = new MenuItem("save");
    
        MenuItem exitItem = new MenuItem("exit",
                new MenuShortcut(KeyEvent.VK_X));
    
        CheckboxMenuItem autoWrap = new CheckboxMenuItem("autoWrap");
    
        MenuItem copyItem = new MenuItem("copy");
        MenuItem pasteItem = new MenuItem("paste");
    
        Menu format =  new Menu("format");
        /*ctrl + shift + / */
        MenuItem commentItem = new MenuItem("comment", new MenuShortcut(KeyEvent.VK_SLASH,true));
    
        MenuItem cancelItem = new MenuItem("cancelComment");
        private TextArea ta = new TextArea(6,40);
    
        public void init(){
            ActionListener menuListener = e -> {
              var cmd = e.getActionCommand();
              ta.append(" click " + cmd + " menu " + " 
     ");
              if(cmd.equals("exit")){
                  System.exit(0);
              }
            };
    
            commentItem.addActionListener(menuListener);
            exitItem.addActionListener(menuListener);
    
            pop.add(autoWrap);
            pop.addSeparator();
            pop.add(copyItem);
            pop.add(pasteItem);
    
            pop.add(new MenuItem("-"));
            pop.add(format);
    
            final Panel p = new Panel();
            p.setPreferredSize(new Dimension(300,160));
            p.add(pop);
            p.addMouseListener(new MouseAdapter() {
                @Override
                public void mouseReleased(MouseEvent e) {
                    if (e.isPopupTrigger()){
                        pop.show(p, e.getX(), e.getY());
                    }
                }
            });
    
    //        file.add(crateItem);
    //        file.add(saveItem);
    //        file.add(exitItem);
    //
    //        edit.add(autoWrap);
    //        edit.addSeparator();
    //        edit.add(copyItem);
    //        edit.add(pasteItem);
    
            format.add(commentItem);
            format.add(cancelItem);
    
    //        edit.add(new MenuItem("-"));
    //        edit.add(format);
    
    
    //
    //        mb.add(file);
    //        mb.add(edit);
    
            f.add(p);
    
    
            f.setMenuBar(mb);
            f.addWindowListener(new WindowAdapter() {
                @Override
                public void windowClosing(WindowEvent e) {
                    System.exit(0);
                }
            });
    
            f.add(ta, BorderLayout.NORTH);
            f.pack();
            f.setVisible(true);
    
        }
    
        public static void main(String[] args) {
            new SimpleMenu().init();
        }
    
    
    }

    output:

  • 相关阅读:
    Access 通用访问类 OleDbHelper
    让Visual Studio 也支持JS代码折叠 [ Visual Studio | #region | #endregion ]
    提高网站性能的方法
    php 正则表达式整理 归纳 重点
    C++数据结构知识点
    algorithm算法设计,数据结构基本概念之我的归纳 by whb_咸菜圣斗士啊斌斌斌斌
    浏览器兼容性问题及常见的解决方法
    js抽象方法的使用
    js制作图片轮换切换
    C语言排序算法总结
  • 原文地址:https://www.cnblogs.com/lianghong881018/p/11281939.html
Copyright © 2011-2022 走看看