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();
}
选中一个菜单项的感觉如下: