`
孙瑞鸿
  • 浏览: 17882 次
  • 性别: Icon_minigender_2
社区版块
存档分类
最新评论

菜单

阅读更多
高级swing组之菜单应用
1 菜单的基本概念
Menu包括两种:基于菜单条的:一般加在JFrame上
                         JPopupMenu:弹出式菜单
javax.swing.JMenuBar类:放置菜单的菜单条
javax.swing.JMenu:菜单目录对象
javax.swing.JMenuItem:菜单条目
         关系:JMenuItem,JMenu都可以是JMenu的子项
                   (JMenuItem必须放在JMenu上)
JMenu必须放在JMenuBar上

2 基于菜单条
     说明:已创建DrawBorder类,继承 JFrame;
(1)初始化窗体
public void initUI(){
		this.setTitle("简单的菜单界面");
		this.setLayout(new java.awt.FlowLayout());
		this.setSize(300,500);
		this.setDefaultCloseOperation(3);
		this.setResizable(true);
		this.setJMenuBar(this.getMenu());
		DrawListener dl=new DrawListener(this);
		this.addMouseListener(dl);
		//将JDesktopPane对象放到面板上
		this.setContentPane(jdp);//jdp在类的头部已声明
		this.setVisible(true);
	}

        (2)取得菜单条函数getMenu()
思路:将菜单条目加到菜单目录上,将菜单目录加到菜单条上,将菜单条返回
给菜单条目加监听器,执行统一的处理方法
public JMenuBar getMenu(){
			//实例化菜单条
			JMenuBar mb=new JMenuBar();
			//实例化菜单目录对象
			JMenu jm=new JMenu("文件");
			//实例化菜单条目
			JMenuItem mi=new JMenuItem("新建");
			JMenuItem mi1=new JMenuItem("退出");
		
			JMenu jm1=new JMenu("编辑");
			JMenuItem mii=new JMenuItem("修改");
			JMenuItem mii1=new JMenuItem("退出");
			//创建内部类的菜单事件监听器对象
			ActionListener ac_listener=new ActionListener(){
				//调用统一的处理方法
				public void actionPerformed(ActionEvent e){
					processMenuEvent(e);
				}
			};
			//给菜单条目添加监听器
			mi.addActionListener(ac_listener);
			mi1.addActionListener(ac_listener);
			mii.addActionListener(ac_listener);
			mii1.addActionListener(ac_listener);
			//将菜单条目添加到菜单目录上
			jm.add(mi);
			jm.add(mi1);
			jm1.add(mii);
			jm1.add(mii1);
			//将菜单目录添加到菜单条上
			mb.add(jm);
			mb.add(jm1);
			return mb;
		}

         (3)菜单事件的处理方法
根据菜单条目的不同执行相应的操作
private void processMenuEvent(ActionEvent e){
	String command=e.getActionCommand();
			if(command.equals("修改")){
				//实例化内部窗体并设置属性
				JInternalFrame jin=new JInternalFrame();
				jin.setTitle("内部窗体");
				jin.setSize(200,300);
				jin.setVisible(true);
				jin.setMaximizable(true);
				jdp.add(jin);
			}else if(command.equals("新建")){
				//弹出一个对话框
				JOptionPane.showInputDialog("要创建什么?");
				//程序退出
			}else if(command.equals("退出")){
				System.exit(0);
			}
		}

3 弹出菜单
说明:在监听器中进行
(1)使用构造方法将窗体传到监听器中
在mousePressed方法中取得点击的点坐标,在该位置弹出菜单
public void mousePressed(MouseEvent e) {
		x=e.getX();
		y=e.getY();
		JPopupMenu jp=getPop();
		jp.show(jf, x, y);
	}

        (2)取得弹出菜单
在弹出菜单中添加菜单目录,目录上添加菜单条目,返回弹出菜单
public JPopupMenu getPop(){
		JPopupMenu pm=new JPopupMenu();
		JMenuItem mi=new JMenuItem("刷新");
		JMenuItem mi1=new JMenuItem("复制");
		JMenuItem mi2=new JMenuItem("粘贴");
		pm.add(mi);
		pm.add(mi1);
		pm.add(mi2);
		return pm;
	}

分享到:
评论

相关推荐

    网吧游戏菜单 游戏菜单 家用游戏菜单

    【标题】:“网吧游戏菜单 游戏菜单 家用游戏菜单” 在当今的数字娱乐领域,网吧游戏菜单和家用游戏菜单扮演着至关重要的角色。它们是玩家与游戏库之间的桥梁,提供了一个用户友好的界面来浏览、选择和启动各种游戏...

    Qt实现的PC端环形菜单、悬浮球菜单、动画菜单、高级菜单

    在本文中,我们将深入探讨如何使用Qt框架来实现各种创新的菜单设计,包括环形菜单、悬浮球菜单和动画菜单。这些高级菜单设计为用户界面增添了互动性和视觉吸引力,是现代应用程序中提升用户体验的重要元素。 首先,...

    51单片机lcd多级菜单.rar_51单片机显示_LCD多级菜单_lcd 菜单_单片机菜单_多级菜单

    在这个“51单片机lcd多级菜单.rar”压缩包中,包含了关于如何在51单片机上实现LCD(液晶显示屏)多级菜单的资源,这对于设计交互式用户界面非常关键。下面将详细解释这一技术的核心知识点。 首先,我们需要理解51...

    Android实现上下文菜单、下拉菜单、选项菜单代码

    Android 实现上下文菜单、下拉菜单、选项菜单代码详解 Android 中的菜单系统是一个非常重要的组件,它提供了多种方式来帮助用户与应用程序进行交互。在本文档中,我们将详细介绍如何实现上下文菜单、下拉菜单和选项...

    VC 菜单制作实例(动态创建菜单、建立带图标的菜单)

    2. 添加顶级菜单项:调用`AppendMenu()`或`InsertMenu()`,传入菜单句柄、菜单类型(如MF_STRING表示文本菜单项)、菜单ID和菜单文本。 3. 添加子菜单项:如果需要创建子菜单,可以使用`AppendMenu()`,设置MF_POPUP...

    C# 向窗体的系统菜单添加菜单项

    在C#编程中,Windows Forms应用常常需要自定义窗口的操作,比如向系统菜单(也称为控制菜单或标题栏菜单)中添加额外的菜单项。这可以让用户更容易地访问应用程序特定的功能,而无需打开单独的菜单或者工具栏。下面...

    VB导航菜单 仿QQ菜单

    VB导航菜单 仿QQ菜单是一种在Visual Basic (VB)开发环境中创建类似QQ应用程序的垂直折叠式菜单的控件。这个控件的设计目的是提供一个简单、直观且可自定义的方式来构建用户界面,使得开发者能够轻松地为应用程序添加...

    MFC对话框动态添加右键快捷菜单-多级菜单

    在对话框中实现右键快捷菜单,尤其是多级菜单,可以增强用户交互体验,使得功能调用更为便捷。下面将详细阐述如何在MFC对话框中动态添加右键快捷菜单,并实现多级结构。 首先,我们需要了解MFC中的菜单系统。MFC将...

    html实现好看的多种风格导航菜单(源码)

    html实现好看的多种风格导航菜单(附源码),导航菜单,源码下载,分为顶部导航菜单,悬浮按钮菜单,右键功能菜单,左侧导航菜单四种导航菜单。每种导航菜单有至少三种风格,总共23种风格,各种风格都有,代码上手简单,...

    Labview 设置菜单栏

    在Labview中,菜单栏位于窗口的顶部,包含了如“文件”、“编辑”、“查看”等标准菜单项,每个菜单项下又可能有多个子菜单。这些菜单项对应着程序的不同功能,点击它们可以触发相应的操作。 设置Labview菜单栏的...

    axure rp9.0 左联菜单功能框架

    1、界面描述:分为左侧菜单功能区,右侧为上方是打开菜单区,下方是打开的功能显示区。 2、使用介绍: 左侧菜单使用中继器进行菜单的动态加载,菜单分两级,可建立多个菜单。在多个菜单进行功能切换时,自动实现菜单...

    链表实现多级菜单

    在本文中,我们将深入探讨如何使用链表来实现多级菜单系统,特别是在单片机环境中的应用。链表作为一种高效的数据结构,对于动态构建和管理菜单具有显著的优势,尤其是在内存有限的环境中。 首先,让我们理解链表的...

    Delphi Edit右键系统菜单加自定义菜单项

    "Delphi Edit右键系统菜单加自定义菜单项" 是一个典型的增强用户界面交互的例子。在这个话题中,我们将深入探讨如何在Delphi中的TEdit控件上添加自定义的右键菜单,同时保持原有的系统菜单功能。 首先,我们要理解...

    京东左侧商品分类菜单JS弹出式菜单

    京东左侧商品分类菜单就是一个典型的实例,它采用JavaScript(JS)技术实现了一个高效的、弹出式的导航菜单。这种菜单设计旨在为用户提供方便快捷的商品浏览方式,同时优化网站的可用性。本文将深入探讨这个菜单的...

    头部超级菜单导航-鼠标放上去显示二级菜单

    在网页设计中,头部超级菜单导航是一种常见的交互模式,它能有效地组织大量链接,提高用户在网站中的导航效率。这种设计通常应用于大型网站或电子商务平台,以提供清晰、直观的层级结构,帮助用户快速找到所需信息。...

    labview菜单响应设计

    菜单结构为: 系统(启动、退出)操作(升温、降温)、帮助 菜单行为如下: 1)当VI初始运行时,升温和降温两个菜单项处于无效(Disable)状态,当用户点击启动菜单项后,这两个菜单变为使能(Enable)状态,同时启动...

    顶级菜单和右键自绘菜单的混合

    在Windows应用程序开发中,设计用户友好的交互界面是至关重要的,而菜单系统是其中不可或缺的一部分。本主题将深入探讨如何实现“顶级菜单和右键自绘菜单的混合”,这是一个高级的UI技术,允许开发者创建更加个性化...

    js树形菜单加右键菜单

    在IT行业中,树形菜单和右键菜单是两种常见的用户界面元素,它们为用户提供了一种组织和交互数据的有效方式。本文将深入探讨这两种菜单的概念、实现原理以及它们在实际项目中的应用,特别是如何在JavaScript环境下...

    js右键菜单,菜单项由js动态添加,纯js调用

    本文将深入探讨如何使用JavaScript实现右键菜单,特别是如何动态添加菜单项,并在菜单项中添加图标、文本以及处理点击事件。此外,我们还将讨论在不同浏览器(如IE、Firefox和Chrome)中的兼容性问题。 首先,右键...

    微信小程序 圆形菜单 (源码)

    微信小程序 圆形菜单 (源码)微信小程序 圆形菜单 (源码)微信小程序 圆形菜单 (源码)微信小程序 圆形菜单 (源码)微信小程序 圆形菜单 (源码)微信小程序 圆形菜单 (源码)微信小程序 圆形菜单 (源码)微信小程序 圆形...

Global site tag (gtag.js) - Google Analytics