加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Java > 正文

learning java AWT 右键菜单

发布时间:2020-12-15 05:31:26 所属栏目:Java 来源:网络整理
导读: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 P
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 " + " n ");
          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:

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读