java学习——88.菜单(二)

上篇仅介绍了菜单,大部分情况下,菜单是有二级菜单的,也即菜单项。

1、  菜单项

菜单项为菜单的最小单位,不能再分解了。一股情况下,菜单项都代表着某一种功能。

其类名为JMenuItem,其类声明如下:

publicclass JMenuItem extends AbstractButton implements Accessible,MenuElement

{

public JMenuItem(String text)   //菜单标题

public JMenuItem(String text, Iconicon)                          //icon指定菜单图标

publicvoid setAccelerator(KeyStroke keyStroke)                  //设置快捷键

}

将菜单项加入到菜单中用的方法是add方法。

2、  示例

本例在上篇示例的基础上,添加了菜单项。为每一个菜单都添加菜单项,其运行结果如下:

单击“文件”菜单:

单击“编辑”菜单:

单击“格式”菜单:

其完整代码如下:

import java.awt.*;

import javax.swing.*;

import java.awt.event.*;

import javax.swing.event.*;

publicclass JMenuLearn extends JFrame{

private JMenuBar menubar;//菜单栏

private JMenu menu[];//菜单,因为有三个菜单,所以用数组的方式

private JMenuItem item[][];//菜单项,菜单项不止一个,所以用数组,一个菜单中有多个菜单项,所以用二维数组

private JTextArea text;

public JMenuLearn(){

super("菜单学习");

this.setLocationRelativeTo(null);

this.setSize(600, 600);

this.setVisible(true);

menubar=new JMenuBar();//创建菜单栏的实例

this.setJMenuBar(menubar);//将菜单栏置于窗口中

String s[]={"文件","编辑","格式"};//菜单项的标题

menu=new JMenu[s.length];//创建菜单数组,数组的长度看上一行有多少个标题

for(int i=0;i<s.length;i++)//因为有三个菜单,我用循环的方式添加至菜单栏中

{

menu[i]=new JMenu(s[i]);//创建菜单,菜单的标题为字符串对应的文字

menubar.add(menu[i]);//将菜单加入到菜单栏中

}

String is[][]={{"打开","新建","退出"},{"剪切","复制","粘帖"},{"字体","颜色"}};//每一个菜单下面菜单项的标题

for(int m=0;m<is.length;m++){//每一层循环,三个菜单

item=new JMenuItem[is.length][is[m].length];//创建菜单项组,大小与菜单项标题相同

for(int n=0;n<is[m].length;n++){//标题的大小

item[m][n]=new JMenuItem(is[m][n]);//创建每一个菜单项实例

menu[m].add(item[m][n]);//为每一个菜单添加相对应的菜单项

}

}

text=new JTextArea(6,6);

this.getContentPane().add(text);

}

publicstaticvoid main(String args[]){

new JMenuLearn();

}

选中一个菜单项的感觉如下:

(0)

相关推荐