Java最全Java图形化界面编程-5-菜单组件,Java程序员晋升路线图

最后

2020年在匆匆忙忙慌慌乱乱中就这么度过了,我们迎来了新一年,互联网的发展如此之快,技术日新月异,更新迭代成为了这个时代的代名词,坚持下来的技术体系会越来越健壮,JVM作为如今是跳槽大厂必备的技能,如果你还没掌握,更别提之后更新的新技术了。

更多JVM面试整理:

本文已被CODING开源项目:【一线大厂Java面试题解析+核心总结学习笔记+最新讲解视频+实战项目源码】收录

需要这份系统化的资料的朋友,可以点击这里获取

演示代码1:


import java.awt.*;

import java.awt.event.ActionEvent;

import java.awt.event.ActionListener;



public class SimpleMenu {

    

	  //创建窗口

    private Frame frame = new Frame("这里测试菜单相关组件");

    //创建菜单条组件

    private MenuBar menuBar = new MenuBar();

    //创建文件菜单组件

    private Menu fileMenu = new Menu("文件");

    //创建编辑菜单组件

    private Menu editMenu = new Menu("编辑");

    //创建新建菜单项

    private MenuItem newItem = new MenuItem("新建");

    //创建保存菜单项

    private MenuItem saveItem = new MenuItem("保存");

    //创建退出菜单项

    private MenuItem exitItem = new MenuItem("退出");



    //创建自动换行选择框菜单项

    private CheckboxMenuItem autoWrap = new CheckboxMenuItem("自动换行");



    //创建复制菜单项

    private MenuItem copyItem = new MenuItem("复制");



    //创建粘贴菜单项

    private MenuItem pasteItem = new MenuItem("粘贴");



    //创建格式菜单

    private Menu formatMenu = new Menu("格式");



    //创建注释菜单项

    private MenuItem commentItem = new MenuItem("注释",new MenuShortcut(KeyEvent.VK_Q,true));

    //创建取消注释菜单项

    private MenuItem cancelItem = new MenuItem("取消注释");



    //创建一个文本域

    private TextArea ta = new TextArea(6, 40);



    public void init(){



        //定义菜单事件监听器

        ActionListener listener = new ActionListener() {

            @Override

            public void actionPerformed(ActionEvent e) {

                String command = e.getActionCommand();

                ta.append("单击“"+command+"”菜单\n");

                if (command.equals("退出")){

                    System.exit(0);

                }

            }

        };



        //为注释菜单项和退出菜单项注册监听器

        commentItem.addActionListener(listener);

        exitItem.addActionListener(listener);



        //为文件菜单fileMenu添加菜单项

        fileMenu.add(newItem);

        fileMenu.add(saveItem);

        fileMenu.add(exitItem);



        //为编辑菜单editMenu添加菜单项

        editMenu.add(autoWrap);

        editMenu.add(copyItem);

        editMenu.add(pasteItem);



        //为格式化菜单formatMenu添加菜单项

        formatMenu.add(commentItem);

        formatMenu.add(cancelItem);



        //将格式化菜单添加到编辑菜单中,作为二级菜单

        editMenu.add(new MenuItem("-"));

        editMenu.add(formatMenu);



        //将文件菜单和编辑菜单添加到菜单条中

        menuBar.add(fileMenu);

        menuBar.add(editMenu);



        //把菜单条设置到frame窗口上

        frame.setMenuBar(menuBar);



        //把文本域添加到frame中

        frame.add(ta);



        //设置frame最佳大小并可见

        frame.pack();

        frame.setVisible(true);

    }



    public static void main(String[] args) {

        new SimpleMenu().init();

    }

}





案例2:

​ 通过PopupMenu实现下图效果:

在这里插入图片描述

实现思路:

1.创建PopubMenu菜单组件;

2.创建多个MenuItem菜单项,并添加到PopupMenu中;

3.将PopupMenu添加到目标组件中;

4.为需要右击出现PopubMenu菜单的组件,注册鼠标监听事件,当监听到用户释放右键时,弹出菜单。

演示代码2:


import java.awt.*;

import java.awt.event.MouseAdapter;

import java.awt.event.MouseEvent;

import java.awt.event.ActionEvent;

import java.awt.event.ActionListener;



public class PopupMenuTest {



    private Frame frame = new Frame("这里测试PopupMenu");



    //创建PopubMenu菜单

    private PopupMenu popupMenu = new PopupMenu();



    //创建菜单条

    private MenuItem commentItem = new MenuItem("注释");

    private MenuItem cancelItem = new MenuItem("取消注释");

    private MenuItem copyItem = new MenuItem("复制");

    private MenuItem pasteItem = new MenuItem("保存");



    //创建一个文本域

    private TextArea ta = new TextArea("我爱中华!!!", 6, 40);



    //创建一个Panel

    private  Panel panel = new Panel();



    public void init(){

    	

    	ActionListener listener=new ActionListener() {

    		@Override

    		public void actionPerformed(ActionEvent e) {

    			String actionCommand =e.getActionCommand();

    			ta.append("你点击了:"+actionCommand+"\n");

    		}


# 面试准备+复习分享:

> 为了应付面试也刷了很多的面试题与资料,现在就分享给有需要的读者朋友,资料我只截取出来一部分哦

![秋招|美团java一面二面HR面面经,分享攒攒人品](https://img-blog.csdnimg.cn/img_convert/c1fb2327c6986ce3c773f22815a0a64a.webp?x-oss-process=image/format,png)



> **本文已被[CODING开源项目:【一线大厂Java面试题解析+核心总结学习笔记+最新讲解视频+实战项目源码】](https://bbs.csdn.net/forums/4f45ff00ff254613a03fab5e56a57acb)收录**

**[需要这份系统化的资料的朋友,可以点击这里获取](https://bbs.csdn.net/forums/4f45ff00ff254613a03fab5e56a57acb)**


# 面试准备+复习分享:

> 为了应付面试也刷了很多的面试题与资料,现在就分享给有需要的读者朋友,资料我只截取出来一部分哦

[外链图片转存中...(img-GlsMEpRw-1715310623307)]



> **本文已被[CODING开源项目:【一线大厂Java面试题解析+核心总结学习笔记+最新讲解视频+实战项目源码】](https://bbs.csdn.net/forums/4f45ff00ff254613a03fab5e56a57acb)收录**

**[需要这份系统化的资料的朋友,可以点击这里获取](https://bbs.csdn.net/forums/4f45ff00ff254613a03fab5e56a57acb)**

  • 7
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值