跳转到内容

事件监听器

75% developed
来自维基教科书,开放的书籍,用于开放的世界

导航 用户界面 主题:v  d  e )


事件监听器一旦设置到小程序对象,就会等待对它执行一些操作,无论是鼠标点击、鼠标悬停、按键按下、按钮点击等。您正在使用的类(例如 JButton 等)会将活动报告给使用它的类设置的类。然后,该方法决定如何对该操作做出反应,通常使用一系列 if 语句来确定执行的是哪个操作。source.getSource() 将返回执行事件的对象的名称,而 source 是在执行操作时传递给函数的对象。每次执行操作时,都会调用该方法。

ActionListener

[编辑 | 编辑源代码]

ActionListener 是一个接口,可以实现它来确定如何处理特定事件。实现接口时,应该实现该接口中的所有方法,ActionListener 接口有一个要实现的方法,名为 actionPerformed()

代码清单 9.6 显示了如何实现 ActionListener

Computer code 代码清单 9.6:EventApplet.java
import java.applet.Applet;
import java.awt.Button;
import java.awt.Container;
import java.awt.Dialog;
import java.awt.FlowLayout;
import java.awt.Frame;
import java.awt.Label;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

public class EventApplet extends Applet {

    /**
     * Init.
     */
    public void init() {
        Button clickMeButton = new Button("Click me");

        final Applet eventApplet = this;

        ActionListener specificClassToPerformButtonAction = new ActionListener() {

            public void actionPerformed(ActionEvent event) {
                Dialog dialog = new Dialog(getParentFrame(eventApplet), false);
                dialog.setLayout(new FlowLayout());
                dialog.add(new Label("Hi!!!"));
                dialog.pack();
                dialog.setLocation(100, 100);
                dialog.setVisible(true);
            }

            private Frame getParentFrame(Container container) {
                if (container == null) {
                    return null;
                } else if (container instanceof Frame) {
                    return (Frame) container;
                } else {
                    return getParentFrame(container.getParent());
                }

            }
        };
        clickMeButton.addActionListener(specificClassToPerformButtonAction);

        add(clickMeButton);
    }
}

编译并运行上面的代码时,当您点击按钮时,将出现消息“Hi!!!”。

MouseListener

[编辑 | 编辑源代码]

小程序鼠标监听器通常与 AWT 鼠标监听器没有区别。当鼠标位于小程序区域时,监听器会收到有关鼠标点击和拖动(如果注册了 MouseListener)以及鼠标移动(如果注册了 MouseMotionListener)的通知。由于小程序通常很小,因此让小程序本身来实现鼠标监听器是一种常见的做法。


Clipboard

待办事项
添加一些练习,比如 变量 中的练习。

华夏公益教科书