友情提示:如果本网页打开太慢或显示不完整,请尝试鼠标右键“刷新”本网页!阅读过程发现任何错误请告诉我们,谢谢!! 报告错误
一世书城 返回本书目录 我的书架 我的书签 TXT全本下载 进入书吧 加入书签

Java编程思想第4版[中文版](PDF格式)-第136章

按键盘上方向键 ← 或 → 可快速上下翻页,按键盘上的 Enter 键可回到本书目录页,按键盘上方向键 ↑ 可回到本页顶部!
————未阅读完?加入书签已便下次继续阅读!




      getAppletContext()。showStatus(〃Button 1〃);  

    }  

  }  

  class B2 implements ActionListener {  

    public void actionPerformed(ActionEvent e) {  

      getAppletContext()。showStatus(〃Button 2〃);  

    }  

  }  

  /* The old way:  

  public boolean action(Event evt; Object arg) {  

    if(evt。target。equals(b1))  

      getAppletContext()。showStatus(〃Button 1〃);  

    else if(evt。target。equals(b2))  

      getAppletContext()。showStatus(〃Button 2〃);  

    // Let the base class handle it:  

    else   



                                                                                          409 


…………………………………………………………Page 411……………………………………………………………

      return super。action(evt; arg);  

    return true; // We've handled it here  

  }  

  */  

} ///:~  

  

我们可比较两种方法,老的代码在左面作为注解。在 init()方法里,只有一个改变就是增加了下面的两行:  

b1。addActionListener(new B1());  

b2。addActionListener(new B2());  

按钮按下时,addActionListener()通知按钮对象被激活。B1 和B2 类都是执行接口ActionListener 的内部 

类。这个接口包括一个单一的方法 actionPerformed() (这意味着当事件激活时,这个动作将被执行)。注 

意actionPreformed()方法不是一个普通事件,说得更恰当些是一个特殊类型的事件,ActionEvent。如果我 

们想提取特殊ActionEvent 的信息,因此我们不需要故意去测试和下溯造型自变量。  

对编程者来说一个最好的事便是actionPerformed()十分的简单易用。它是一个可以调用的方法。同老的 

action()方法比较,老的方法我们必须指出发生了什么和适当的动作,同样,我们会担心调用基础类 

action()的版本并且返回一个值去指明是否被处理。在新的事件模型中,我们知道所有事件测试推理自动进 

行,因此我们不必指出发生了什么;我们刚刚表示发生了什么,它就自动地完成了。如果我们还没有提出用 

新的方法覆盖老的方法,我们会很快提出。  



13。16。2 事件和接收者类型  



所有AWT 组件都被改变成包含addXXXListener()和removeXXXListener()方法,因此特定的接收器类型可从 

每个组件中增加和删除。我们会注意到“XXX”在每个场合中同样表示自变量的方法,例如, 

addFooListener(FooListener fl)。下面这张表格总结了通过提供addXXXListener()和 removeXXXListener() 

方法,从而支持那些特定事件的相关事件、接收器、方法以及组件。  

事件,接收器接口及添加和删除方法 支持这个事件的组件  

  



Event; listener interface and C o m p o n e n t s  s u p p o r t i n g  t h i s  e v e n t   

add   a n d   r e m o v e m e t h o d s   



A c t i o n E v e n t                 B u t t o n ; L i s t ; T e x t F i e l d ;  M e n u I t e m ;  and its derivatives  

A c t i o n L i s t e n e r           including C h e c k b o x M e n u I t e m ; M e n u ;  and P o p u p M e n u   

a d d A c t i o n L i s t e n e r (  )   

r e m o v e A c t i o n L i s t e n e r (   )   



A d j u s t m e n t E v e n t         S c r o l l b a r  

A d j u s t m e n t L i s t e n e r   Anything you create that implements the Adjustable interface  

a d d A d j u s t m e n t L i s t e n e r ( )   

removeAdjustmentListener( )  



C o m p o n e n t E v e n t           C o m p o n e n t and its derivatives; including Button; Canvas;  

C o m p o n e n t L i s t e n e r     Checkbox ; Choice; Container ; Panel ; Applet ; ScrollPane;  

a d d C o m p o n e n t L i s t e n e r (   )   Window ; Dialog ; FileDialog; Frame ; Label; List ; Scrollbar;  

removeponentListener(  )  T e x t A r e a ;  and T e x t F i e l d   



C o n t a i n e r E v e n t           C o n t a i n e r and its derivatives; including Panel ; Applet ;  

C o n t a i n e r L i s t e n e r     S c r o l l P a n e ; W i n d o w ; D i a l o g ; F i l e D i a l o g ;  and Frame  

a d d C o n t a i n e r L i s t e n e r (   )   

removeContainerListener(  )   



F o c u s E v e n t                   C o m p o n e n t and its derivatives; including Button; Canvas;  

F o c u s L i s t e n e r             Checkbox ; Choice; Container ; Panel ; Applet ; ScrollPane;  

a d d F o c u s L i s t e n e r (  )   Window ; Dialog ; FileDialog; Frame  Label; List ; Scrollbar;  

r e m o v e F o c u s L i s t e n e r (  )   T e x t A r e a ;  and T e x t F i e l d   



K e y E v e n t                       C o m p o n e n t and its derivatives; including Button; Canvas;  



                                                                                                         410 


…………………………………………………………Page 412……………………………………………………………

K e y L i s t e n e r                      Checkbox ; Choice; Container ; Panel ; Applet ; ScrollPane;  

a d d K e y L i s t e n e r (  )           Window ; Dialog ; FileDialog; Frame ; Label; List ; Scrollbar;  

r e m o v e K e y L i s t e n e r (  )     T e x t A r e a ;  and T e x t F i e l d   



M o u s e E v e n t  (for both clicks and C o m p o n e n t and its derivatives; including Button; Canvas;  

motion)                                    Checkbox ; Choice; Container ; Panel ; Applet ; ScrollPane;  

M o u s e L i s t e n e r                  Window ; Dialog ; FileDialog; Frame ; Label; List ; Scrollbar;  

a d d M o u s e L i s t e n e r (   )      T e x t A r e a ;  and T e x t F i e l d   

r e m o v e M o u s e L i s t e n e r (  )   



M o u s e E v e n t '55'  (for both clicks C o m p o n e n t and its derivatives; including Button; Canvas;  

and motion)                                Checkbox ; Choice; Co ntainer ; Panel ; Applet ; ScrollPane;  

M o u s e M o t i o n L i s t e n e r      Window ; Dialog ; FileDialog; Frame ; Label; List ; Scrollbar;  

addMouseMotionListener(  )  T e x t A r e a ;   and T e x t F i e l d   

removeMouseMotionListener( )  



W i n d o w E v e n t                      Window and its derivatives; including Dialog; FileDialog; and  

W i n d o w L i s t e n e r                F r ame   

a d d W i n d o w L i s t e n e r (  )   

r e m o v e W i n d o w L i s t e n e r (   )   



I t e m E v e n t                          Checkbox ; CheckboxMenuItem ; Choice ; List;  and anything that  

I t e m L i s t e n e r                     implements the I t e m S e l e c t a b l e  interface  

a d d I t e m L i s t e n e r (  )   

r e m o v e I t e m L i s t e n e r (  )   



T e x t E v e n t                          Anything derived from Textponent ; including TextArea  and  

T e x t L i s t e n e r                    T e x t F i e l d   

a d d T e x t L i s t e n e r (  )   

r e m o v e T e x t L i s t e n e r (  )   



  

  

⑤:即使表面上如此,但实际上并没有MouseMotiionEvent (鼠标运动事件)。单击和运动都合成到 

MouseEvent 里,所以 MouseEvent 在表格中的这种另类行为并非一个错误。  

  

可以看到,每种类型的组件只为特定类型的事件提供了支持。这有助于我们发现由每种组件支持的事件,如 

下表所示:  

  

组件类型 支持的事件  

  

  



C o m p o n e n t   t y p e    E v e n t s  s u p p o r t e d  b y  t h i s  c o m p o n e n t   



A d j u s t a b l e         A d j u s t m e n t E v e n t   



A p p l e t                  Conta inerEvent; FocusEvent; KeyEvent; MouseEvent; ponentEvent   



B u t t o n                 ActionEvent; FocusEvent; KeyEvent; MouseEvent; ponentEvent   



C a n v a s                 F o c u s E v e n t ;  K e y E v e n t ;  M o u s e E v e n t ;  C o m p o n e n t E v e n t   



C h e c k b o x              ItemEvent; FocusEvent; KeyEvent; MouseEvent; ponentEvent   



CheckboxMenuItem A c t i o n E v e n t ;  I t e m E v e n t   



C h o i c e                  ItemEvent; FocusEvent; KeyEvent; MouseEvent; ponentEvent   



C o m p o n e n t           F o c u s E v e n t ;  K e y E v e n t ;  M o u s e E v e n t ;  C o m p o n e n t E v e n t   



C o n t a i n e r            ContainerEvent; FocusEvent; KeyEvent; MouseEvent; ponentEvent   



                                                                                                                         411 


…………………………………………………………Page 413……………………………………………………………

D i a l o g               Co ntainerEvent; WindowEvent; FocusEvent; KeyEvent; MouseEvent;  

                          C o m p o n e n t E v e n t   



F i l e D i a l o g       ContainerEvent; WindowEvent; Foc
返回目录 上一页 下一页 回到顶部 0 0
未阅读完?加入书签已便下次继续阅读!
温馨提示: 温看小说的同时发表评论,说出自己的看法和其它小伙伴们分享也不错哦!发表书评还可以获得积分和经验奖励,认真写原创书评 被采纳为精评可以获得大量金币、积分和经验奖励哦!