打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
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();

    }

}

本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
Java Swing编程:基本组件
Swing 测试 组件 actionlistener
十天掌握VB.NET程序设计基础目录
右键弹出菜单例子
类似Windows的菜单
《Java语言编程基础立体化实用教程》2-4 应用程序主窗体的实现
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服