当前位置 : IT培训网 > Java开发 > Java教程 > Java编程菜单有哪些类型

Java编程菜单有哪些类型

时间:2016-09-02 14:38:17  来源:Java培训网  作者:IT培训网  已有:名学员访问该课程
标签(Tag):   Java编程(686)Eclipse(8)
下拉式菜单通过出现在菜单条上的名字可视化表示,菜单条(JMenuBar)通常出现在JFrame的顶部,一个菜单条显示多个下拉式菜单的名字。可以用两种方式来激活下拉式菜单。一种是按下鼠标的按钮,并保持按下状态,移动鼠标,直至释

Java中的菜单包括很多,如菜单条、菜单和菜单项等,下面就让我们一起学习Java菜单方面的知识点吧!

有两种类型的菜单:下拉式菜单和弹出式菜单。本章只讨论下拉式菜单编程方法。菜单与JComboBox和JCheckBox不同,它们在界面中是一直可见的。菜单与JComboBox的相同之处是每次只可选择一个项目。

在下拉式菜单或弹出式菜单中选择一个选项就产生一个ActionEvent事件。该事件被发送给那个选项的监视器,事件的意义由监视器解释。

菜单条、菜单和菜单项

下拉式菜单通过出现在菜单条上的名字可视化表示,菜单条(JMenuBar)通常出现在JFrame的顶部,一个菜单条显示多个下拉式菜单的名字。可以用两种方式来激活下拉式菜单。一种是按下鼠标的按钮,并保持按下状态,移动鼠标,直至释放鼠标完成选择,高亮度显示的菜单项即为所选择的。另一种方式是当光标位于菜单条中的菜单名上时,点击鼠标,在这种情况下,菜单会展开,且高亮度显示菜单项。

一个菜单条可以放多个菜单(JMenu),每个菜单又可以有许多菜单项(JMenuItem)。例如,Eclipse环境的菜单条有File、Edit、Source、Refactor等菜单,每个菜单又有许多菜单项。例如,File菜单有New、Open File、Close 、Close All等菜单项。

向窗口增设菜单的方法是:先创建一个菜单条对象,然后再创建若干菜单对象,把这些菜单对象放在菜单条里,再按要求为每个菜单对象添加菜单项。

菜单中的菜单项也可以是一个完整的菜单。由于菜单项又可以是另一个完整菜单,因此可以构造一个层次状菜单结构。

1. 菜单

由类JMenu创建的对象就是菜单。类JMenu的常用方法如下:

JMenu():建立一个空标题的菜单。

JMenu(String s):建立一个标题为s的菜单。

add(JMenuItem item):向菜单增加由参数item指定的菜单选项。

add(JMenu menu):向菜单增加由参数menu指定的菜单。实现在菜单嵌入子菜单。

addSeparator():在菜单选项之间画一条分隔线。

getItem(int n):得到指定索引处的菜单项。

getItemCount():得到菜单项数目。

insert(JMenuItem item,int n):在菜单的位置n插入菜单项item.

remove(int n):删除菜单位置n的菜单项

removeAll():删除菜单的所有菜单项。

2. 菜单条

类JMenuBar的实例就是菜单条。例如,以下代码创建菜单条对象menubar:

    JMenuBar menubar = new JMenuBar();

在窗口中增设菜单条,必须使用JFrame类中的setJMenuBar()方法。例如,代码:

    setJMenuBar(menubar);

类JMenuBar的常用方法有:

add(JMenu m):将菜单m加入到菜单条中。

countJMenus():获得菜单条中菜单条数。

getJMenu(int p):取得菜单条中的菜单。

remove(JMenu m):删除菜单条中的菜单m。

3.菜单项

类JMenuItem 的实例就是菜单项。类JMenuItem的常用方法如下:

JMenuItem():构造无标题的菜单项。

JMenuItem(String s):构造有标题的菜单项。

setEnabled(boolean b):设置当前单项是否可被选择。

isEnabled():返回当前菜单项是否可被用户选择。

getLabel():得到菜单项的名称。

setLabel():设置菜单选项的名称。

addActionListener(ActionListener e):为菜单项设置监视器。监视器接受点击某个菜单的动作事件。

4. 嵌入子菜单

创建了一个菜单,并创建多个菜单项,其中某个菜单项又是一个(含其他菜单项的)菜单,这就构成菜单嵌套。例如,将上述程序中的有关代码改成如下:

    Menu menu1,menu2,item4;

    MenuItem item3,item5,item6,item41,item42;

另插入以下代码创建item41和item42菜单项,并把它们加入到item4菜单中:

    item41= new MenuItem(“东方红”);

    item42 = new MenuItem(“牡丹”);

    item4.add(item41);

    item4.add(item42);

则点击item4菜单时,又会打开两个菜单项供选择。

5.处理菜单事件

菜单的事件源是用鼠标点击某个菜单项。处理该事件的接口是ActionListener,要实现的接口方法是actionPerformed(ActionEvent e),获得事件源的方法getSource().

【例 11-15】小应用程序示意窗口有菜单条的实现方法。设有一个按钮,当按钮处于打开窗口状态时,单击按钮将打开一个窗口,窗口设有一个菜单条,有两个菜单,每个菜单又各有三个菜单项。当一个菜单项被选中时,菜单项监视方法在文本框中显示相应菜单项被选中字样。

import java.applet.*

import javax.swing.*;

import java.awt.*;

import java.awt.event.*;

class MenuWindow extends JFrame implements ActionListener{

    public static JtextField text;

    private void addItem(JMenu Menu,String menuName,ActionListener listener){

        JMenuItem anItem = new JMenuItem(menuName);

        anItem.setActionCommand(menuName);

        anItem.addActionListener(listener);

        Menu.add(anItem);

    }

    public MenuWindow(String s,int w,int h){

        setTitle(s);

        Container con = this.getContentPane();

        con.setLayout(new BorderLayout());

        this.setLocation(100,100);

        this.setSize(w,h);

        JMenu menu1 = new JMenu("体育");

        addItem(menu1," 跑步",this);

        addItem(menu1," 跳绳",this);

        addItem(menu1,"打球",this);

        JMenu menu2 = JMenu("娱乐");

        addItem(menu2,"唱歌",this);

        addItem(menu2,"跳舞",this);

        addItem(menu2,"游戏",this);

        JMenuBar menubar = new JMenuBar();

        text = new JTextField();

        menubar.add(menu1);

        menubar.add(menu2);

        setJMenuBar(MenuBar);

        con.add(text,BorderLayout.NORTH);

    }

    public void actionPerformed(ActionEvent e){

        text.setText(e.getActionCommand()+"菜单项被选中!");

    }

}

public class Example6_5 extends Applet implements ActionListener{

    MenuWindow window;

    JButton button;

    boolean bflg;

    public void init(){

        button = new JButton("打开我的体育娱乐之窗");bflg =true;

        window = new MenuWindow("体育娱乐之窗",100,100);

        button.addActionListener(this);

        add(button);

    }

    public void actionPerformed(ActionEvent e){

        if(e.getSource()==button){

            if(bflg){

                window.setVisible(true);

                bflg = false;

                button.setLabel("关闭我的体育娱乐之窗");

            }

            else{

               window.setVisible(false);

               bflg = true;

               button.setLabel("打开我的体育娱乐之窗");

            }

        }

    }

}

6. 向菜单增加退出项

增设一个新的菜单项,对该菜单项加入监视,对应的监视方法中使用System.exit()方法,就能实现单击该菜单项时退出Java运行环境。例如,以下示意代码:

item7 = new MenuItem(“退出”);

item7.addActionListener(this);

public void actionPerformed(ActionEvent e){

    if(e.getSource()==item7){

        System.exit(0);

    }

}

7.设置菜单项的快捷键

用MenuShortcut类为菜单项设置快捷键。构造方法是MenuShortcut(int key)。其中key可以取值KeyEvent.VK_A至KenEvent.VK_Z,也可以取 ‘a’到 ‘z’键码值。菜单项使用setShortcut(MenuShortcut k)方法来设置快捷键。例如,以下代码设置字母e为快捷键。

class Herwindow extends Frame implements ActionListener{

    MenuBar menbar;

    Menu menu;

    MenuItem item;

    MenuShortcut shortcut = new MenuShortcut(KeyEvent.VK_E);

    …

    item.setShortcut(shortcut);

    …

}

选择框菜单项

菜单也可以包含具有持久的选择状态的选项,这种特殊的菜单可由JCheckBoxMenuItem类来定义。JCheckBoxMenuItem对象像选择框一样,能表示一个选项被选中与否,也可以作为一个菜单项加到下拉菜单中。点击JCheckBoxMenuItem菜单时,就会在它的左边出现打勾符号或清除打勾符号。例如,在例6.5程序的类MenuWindow中,将代码

    addItem(menu1,“跑步”,this);addItem(menu1,”跳绳”,this);

改写成以下代码,就将两个普通菜单项“跑步“和“跳绳”改成两个选择框菜单项:

    JCheckBoxMenuItem item1 = new JCheckBoxMenuItem(“跑步”);

    JCheckBoxMenuItem item2 = new JCheckBoxMenuItem(“跳绳”);

    item1.setActionCommand(“跑步”);

    item1.addActionListener(this);

    menu1.add(item1);

    item2.setActionCommand(“跳绳”);

    item2.addActionListener(this);

    menu1.add(item2);

顶一下
(0)
0%
踩一下
(0)
0%
------分隔线----------------------------
------分隔线----------------------------
Java教程
1、Java 概述
1.1 Java语言概述
1.2 Java虚拟机以及跨平台原理
1.3 Java的主要就业方向
1.4 Java的不同版本
1.5 Java开发环境搭建
1.6 第一个Java程序示例
1.7 Java类和对象的概念
1.8 Java类库及其组织结构
1.9 Java import
2、Java 语法基础
2.1 Java数据类型以及变量的定义
2.2 Java数据类型转换
2.3 Java运算符
2.4 Java流程控制
2.5 Java数组的定义和使用
2.6 Java字符串(String)
2.7 Java StringBuffer与StringBuider
2.8 强调一下编程风格
3、Java 类与对象
3.1 Java类的定义及其实例化
3.2 Java访问修饰符
3.3 Java变量的作用域
3.4 Java this关键字详解
3.5 Java方法重载
3.6 Java类的基本运行顺序
3.7 Java包装类、拆箱和装箱详解
3.8 再谈Java包
3.9 源文件的声明规则
4、Java 继承和多态
4.1 继承的概念与实现
4.2 Java super关键字
4.3 继承中的方法的覆盖和重载
4.4 多态和动态绑定
4.5 instanceof 运算符
4.6 多态对象的类型转换
4.7 Java static关键字
4.8 Java final关键字
4.9 Java Object类
5、面向对象高级特性
5.1 Java内部类及其实例化
5.2 内部类的分类
5.3 抽象类的概念和使用
5.4 接口的概念和使用
5.5 接口和抽象类的区别
5.6 Java 泛型
5.7 泛型通配符和类型参数的范围
6、异常处理
6.1 异常处理基础
6.2 异常类型Java语言中常见的异常类型有哪些
6.3 未被捕获的异常
6.4 try和catch的使用
6.5 多重catch语句的使用
6.6 try语句的嵌套
6.7 throw:异常的抛出
6.8 throws子句
6.9 finally块
6.10 Java的内置异常
6.11 创建自己的异常子类
6.12 断言
7、线程编程
7.1 线程的概念
7.2 Java线程模型
7.3 主线程
7.4 创建线程
7.5 创建多线程
7.6 isAlive()和join()的使用
7.7 线程优先级
7.8 线程同步
7.9 线程间通信
7.10 线程死锁
7.11 线程的挂起、恢复和终止
8、输入输出(IO)操作
8.1 输入输出基本概念
8.2 面向字符的输入流
8.3 面向字符的输出流
8.4 面向字节的输入输出流
8.5 面向字节流的应用
8.6 文件与目录管理
8.7 文件的随机读写
8.8 文件的压缩处理
9、常用类库、向量与哈希
9.1 Java基础类库
9.2 Object类
9.3 Java语言包(java.lang)简介
9.4 日期和时间类
9.5 向量及其应用
9.6 哈希表及其应用
10、图形界面(GUI)设计
10.1 图形界面设计基础
10.2 框架窗口
10.3 标签、按钮和按钮事件
10.4 面板
10.5 布局设计
10.6 文本框和文本区
10.7 文本框和文本区的输入输出
10.8 选择框和单选按钮
10.9 列表和组合框
10.10 菜单
10.11 对话框
10.12 滚动条
10.13 鼠标事件
10.14 键盘事件
11、图形、图像与多媒体
11.1 绘图基础
11.2 设置字型和颜色
11.3 绘图模式
11.4 Graphics类的绘图方法
11.5 Graphics2D类的绘图方法
11.6 图像处理基础
11.7 图像缓冲技术
11.8 多媒体基础
12、网络与数据库编程
12.1 IP地址和InetAddress类
12.2 统一资源定位符
12.3 套接字(Socket)
12.4 数据库连接
12.5 几个重要的类和接口
12.6 数据库查询
12.7 数据库更新
12.8 插入记录
12.9 修改记录
12.10 删除记录