AWT事件处理概述

1.事件

      事件(event)是指一个状态的改变,或者一个动作的发生,例如单击一个按钮,产生单击事件。

2.事件类

      在JAVA中,用不同的类处理不同的事件,在java.awt.event包中定义了许多事件类,如单击事件类(ActionEvent)和窗口事件类(WindowEvent)。

3.事件源

       事件由操作组件产生,被操作的组件就是事件源。

4.事件监听器 

       在图形界面程序,不仅需要创建组件,而且需要指定组件所能响应的事件,以及该事件发生时要执行的动作(语句序列)。

       (1)为了在事件发生时,事件监听器能够接收到通知,需要向事件源中注册事件监听器。

               像事件源中添加事件监听器中要用到addXXXListener(事件监听器)方法。

       (2)事件处理方法是事件发生时需要执行的方法,java为每个事件类定义了一个事件监听器接口,其中声明了事件处理的           抽象方法。由于事件监听器接口中声名的都是抽象方法,所以在实现时要实现时要实现所有的抽象方法。

5.事件类和监听器接口

        (1)事件类

                 java定义的多数事件在java.awt.event包中。AWTEvent类是所有事件类的组件,他又继承了java.util.EventObject             类,而EventObject类又继承了java.lang.Object类。

        (2)事件监听器接口

                 java中的每个事件类都有一个监听器接口,其中声名了一个或多个事件处理方法。如果一个类实现了事件监听器接              口,其对象就可以作为对应事件的监听器。

         AWT中的主要事件类,所对应的事件监听器接口和接口中声明的方法如下:

         事件类                            监听器接口                           监听器接口中声明的方法

         ActionEvent                   ActionListener                      actionPerformed(ActionEvent e)


         AdjustmentEvent           AdjustmentListener              adjustmentValueChanged(AdjustmentEvent e)


         ItemEvent                      ItemListener                        itemStateChanged(ItemEvent e)


         KeyEvent                        KeyListener                          KeyTyped(KeyEvent e)

                                                                                          KeyPressed(KeyEvent e)

                                                                                          keyReleased(KeyEvent e)


         MouseEvent                   MouseListener                     mouseClicked(MouseEvent e)

                                                                                          mouseEntered(MouseEvent e)

                                                                                          mouseExited(MouseEvent e)

                                                                                          mousePressed(MouseEvent e)

                                                                                          mouseReleased(MouseEvent e)

                                                                                          mouseDragged(MouseEvent e)

                                                                                          mouseMoved(MouseEvent e)


         TextEvent                       TextListener                         textValueChange(TextEvent e)


         WindowEvent                 WindowListener                   windowActivated(WindowEvent e)

                                                                                           windowClosed(WindowEvent e)

                                                                                           windowClosing(WindowEvent e)

                                                                                           windowDeactivated(WindowEvent e)

                                                                                           windowDeiconified(WindowEvent e)

                                                                                           windowIconified(WindowEvent e)

                                                                                           windowOpened(WindowEvent e)

         AWT中的组件类和可触发的事件类的对应关系:

         组件类                              产生的事件类                              组件类                       产生的事件类

         Button                             ActionEvent                               TextArea                   TextEvent,KeyEvent,ActionEvent

         CheckBox                        ActionEvent,ItemEvent               TextField                   TextEvent,KeyEvent,ActionEvent

         MenuItem                       ActionEvent                               Window                     WindowEvent

         Scrollbar                          AdjustmentEvent

        (3)事件适配器类

                因为有的事件监听器接口中有很多抽象方法,即使只需要处理一个事件,也要实现接口中的所有事件处理方法,这十          分麻烦,所以引入了适配器(adapt)类,类名带有Adapter标记,每个适配器类实现了一个事件监听器接口,用空方法体实          现该接口中的每个抽象方法,这样一来,仅需要覆盖所响应的事件处理方法,不需要用空方法体实现其他方法。

         监听器接口与适配器类的对应关系:

         监听器接口                            适配器类                               监听器接口                             适配器类

         ComponentListener              ComponentAdapter             MouseListener                       MouseAdapter

         ContainerListener                 ContainerAdapter                MouseMotionListener            MouseMotionAdapter

         FocusListener                       FocusAdapt                          WindowListener                     WindowAdapter

         KeyListener                           KeyAdapter

         (4)注册事件监听器的方法

          像组件类对象注册和撤销事件监听器的方法

          组件类                                       注册和撤销事件监听器的方法

          Button                                      addActionListener(ActionListener I)

                                                          removeActionListener(ActionListener I)


          Component                              addKeyListener(KeyListener I)

                                                          removeKeyListener(KeyListener I)

                                                          addMouseListener(MouseListener I)

                                                          removeMouseListener(MouseListener I)

                                                          addMouseMotionListener(MouseMotionListener I)

                                                          removeMouseMotionListener(MouseMotionListener I)


          MenuItem                                addActionListener(ActionListener I)

                                                          removeActionListener(ActionListener I)


          TextArea(TextField)                   addActionListener(ActionListener I)

                                                          removeActionListener(ActionListener I)

                                                          addTextEventListener(TextListener I)

                                                          removeTextEventListener(TextListener I)

                                                          addKeyListener(KeyListener I)

                                                          removeKeyListener(KeyListener I)


          Window                                   addWindowListener(WindowListener I)

                                                          removeActionListener(WindowListener I)







猜你喜欢

转载自blog.csdn.net/qq_36297434/article/details/80269843
AWT
今日推荐