java学习——89.菜单(三)

每单击一个菜单项,应实现对应的功能。

菜单项是抽象按钮的子类,可以在菜单项上注册事件监听器,实现对应的功能。

以上篇中的示例为例:

注册事件监听器是在菜单项实例那里添加一行语句

item[m][n].addActionListener(this);

然后实现其功能。

方法事件如下:

public void actionPerformed(ActionEvent e){

if(e.getSource() instanceof JMenuItem){//判断是否单击的是菜单项

if(e.getActionCommand().equals("打开"))//如果单击的是打开菜单项

text.setText("将打开一个文件");//在文本区中提示

if(e.getActionCommand().equals("新建"))//如果单击的是新建菜单项

new JMenuLearn();//重新创建一个实例

if(e.getActionCommand().equals("退出"))//如果单击的是退出菜单项

System.exit(0);   //系统退出

}

}

其运行结果如下:

(1)单击打开菜单项:

(2)单击新建菜单项,会新跳出来一个窗口:

如果单击退出菜单项会直接退出本程序。

其完整代码如下:

import java.awt.*;

import javax.swing.*;

import java.awt.event.*;

import javax.swing.event.*;

public class JMenuLearn extends JFrame implementsActionListener{

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]);//为每一个菜单添加相对应的菜单项

item[m][n].addActionListener(this);//为每一个菜单项注册事件监听

}

}

text=new JTextArea(6,6);

this.getContentPane().add(text);

}

publicvoid actionPerformed(ActionEvent e){

if(e.getSource() instanceof JMenuItem){//判断是否单击的是菜单项

if(e.getActionCommand().equals("打开"))//如果单击的是打开菜单项

text.setText("将打开一个文件");//在文本区中提示

if(e.getActionCommand().equals("新建"))//如果单击的是新建菜单项

new JMenuLearn();//重新创建一个实例

if(e.getActionCommand().equals("退出"))//如果单击的是退出菜单项

System.exit(0);   //系统退出

}

}

publicstaticvoid main(String args[]){

new JMenuLearn();

}

}

(0)

相关推荐

  • 实战 | Excel伴侣-菜单篇

    '**********************************************'*程序名称:Excel伴侣'*作 者:liuxiangtao'*发布版本:Ver7.5'*创建日期:20 ...

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

    上篇仅介绍了菜单,大部分情况下,菜单是有二级菜单的,也即菜单项. 1.  菜单项 菜单项为菜单的最小单位,不能再分解了.一股情况下,菜单项都代表着某一种功能. 其类名为JMenuItem,其类声明如下 ...

  • java学习——87.菜单

    日常所用到的每一个软件,几乎都会用到菜单. 菜单即打开软件顶上的那一排类似导航的按钮,但它又不是按钮.或者是右键时的快捷菜单,都是菜单. 本篇即介绍菜单组件. 菜单有两种使用方式:窗口菜单和快捷菜单. ...

  • java学习——90.快捷菜单

    快捷菜单也是一组菜单项或子菜单的容器,与窗口菜单不同的是,它是通过右键弹出的. 快捷菜单类为JPopupMenu,其类的声明如下: public class JPopupMenu extends JC ...

  • java学习——8运算符与表达式(三)

    本篇接java学习--7运算符与表达式(二) (4)逻辑运算符 逻辑运算即对布尔类型进行的与.或.非.异或等的运算,其运算结果仍为布尔类型. 逻辑运算符有6个:&(与).\(或).!(非).^ ...

  • 击球无力?学习费纳德三巨头正手共同点:肘部向下、远离身体

    击球无力?学习费纳德三巨头正手共同点:肘部向下、远离身体

  • “物联网开发实战”学习笔记-(三)根据光线调节亮度

    让智能电灯可以基于环境的明暗来自动地打开和关闭.可以分为两个阶段,第一阶段是打造传感器设备来感知光照的强弱,判断出环境的明暗状态,第二阶段是创建一个场景联动,根据传感器的数值来控制智能电灯的状态. 1 ...

  • 提高学习成绩的三要素和八大环节

    通过大量的案例,总结出共性的东西,北大.清华学生在中学期间,百分之百的学习有规律.成绩不理想,说明学习过程出了问题,学习能力没有得到有效提升.学习成绩是学习能力的外在表现之一. 一.学习能力有三个要素 ...

  • 学习宝典!三分钟教你学会电线承受电流估算

    学PLC联盟 3篇原创内容 公众号 今天带你用三分钟的时间,学会电源线承受电流估算,不浪费时间,直接开始吧. 工作温度30℃,长期连续90%负载下的载流量 1.5平方毫米――14A 2.5平方毫米―― ...

  • 为落户买郊区89㎡小三居,花9万装修,完工越看越有家的味道

    毕业之后在这个城市也工作了10年了,房子的价格越来越高,但是落户的梦想依然热情,凑齐了一套郊区房子的首付,选了一套89㎡的小三居,也许这套房子就是以后长期的房子了,三个卧室更方便,装修花了9万块,储物 ...