java中怎样给下拉菜单添加事件响应?详细解析

BSO 2020-11-24 14:45:18 java常见问答 8788

近些年时代的变化发展是越来越大了,各种高新技术也在源源不断的涌现出来。java更是非常受学习者的欢迎。今天就来为大家介绍一些java中的基础知识,一起来看看吧。

首先内隐类的位置,应该放在为它生成对象之前(即放在MyListener s=new MyListener)之前。使用内隐类的典型做法是,外围的class有一个函数,可以传回一个reference指向这个内部类。

首先e.getSource()这个方法返回的类型是一个Object,而非字符串,“e.getSource()=="新建"”,好像不能比较。一般用法是e.getSource()==t (t为一个发生鼠标时间的组件)。

另外,内隐类中,如果要涉及到外部类的对象时,如果将当前对象传递进来呢?那么,这样的做法,跟你使用类的组合有什么区别?

其实正确的做法如下代码所示:

package help;
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
public class MenuTest extends JFrame
{
    Frame fr;
    MenuItem newf;
    MenuItem itmm;
    ActionListener listen = new ActionListener()
    {
        public void actionPerformed(ActionEvent e)
        {
            if (e.getSource() == itmm)
            {
                System.exit(0);
            }
        }
    };
    public MenuTest()
    {
        fr = this;
        MenuBar mb = new MenuBar();
        setMenuBar(mb);
        Menu file = new Menu("文件");
        itmm = new MenuItem("退出");
        file.add(new MenuItem("新建"));
        file.add(new MenuItem("打开"));
        file.add(new MenuItem("关闭"));
        file.add(new MenuItem("-"));
        file.add(itmm);
        itmm.addActionListener(listen);
        mb.add(file);
        this.setSize(300, 200);
        this.setVisible(true);
    }
    public static void main(String[] args)
    {
        new MenuTest();
    }
}

其实具体的操作还是比较简单的,主要是需要大家去实际的操作一下。如果你对java知识感兴趣,想要了解更多java基础知识,敬请关注奇Q工具网。

推荐阅读:

java中如何向菜单增加退出项?快捷键怎么设?

java中怎么处理菜单事件?实例展示

java中菜单条和菜单项,详细解析