WEB开发网
开发学院WEB开发Jsp Swing读书笔记事件处理 阅读

Swing读书笔记事件处理

 2008-01-05 08:42:39 来源:WEB开发网   
核心提示:++ Swing读书笔记事件处理2-1:事件处理:Source Event Event Listener--AbstractButton ActionEvent ActionListener(JButton,JtoggleButton, ChangeEvent ChangeListenerJCheckBox,

++ Swing读书笔记事件处理

2-1:事件处理:
Source                   Event                    Event Listener
--------------------------------------------------------------------------------------------------------------
AbstractButton             ActionEvent                  ActionListener
(JButton,JtoggleButton,         ChangeEvent                  ChangeListener
JCheckBox,JRadioButton         ItemEvent                   ItemListener
-------------------------------------------------------------------------------------------------------
JTextField               ActionEvent                  ActionListener
JpassWordField             CaretEvent                  CaretListener
                    DocumentEvent                 DocumentListener
                    UndoableEvent                 UndoableListener
-------------------------------------------------------------------------------------------------------
JTextArea                CaretEvent                  CaretListener
                    DocumentEvent                 DocumentListener
                    UndoableEvent                 UndoableListener
-------------------------------------------------------------------------------------------------------
JTextPane                CaretEvent                  CaretListener
JEditorPane               DocumentEvent                 DocumentListener
                    UndoableEvent                 UndoableListener
                    HyperlinkEvent                HyperlinkListener
-------------------------------------------------------------------------------------------------------
JComboBox                ActionEvent                  ActionListener
                    ItemEvent                   ItemListener
-------------------------------------------------------------------------------------------------------
JList                  ListSelectionEvent              ListSelectionListener
                    ListDataEvent                 ListDataListener
-------------------------------------------------------------------------------------------------------
JFileChooser              ActionEvent                  ActionListener
-------------------------------------------------------------------------------------------------------
JMenuItem                ActionEvent                  ActionListener
                    ChangeEvent                  ChangeListener
                    ItemEvent                   ItemListener
                    MenuKeyEvent                 MenuKeyListener
                    MenuDragMouseEvent              MenuDragMouseListener
-------------------------------------------------------------------------------------------------------
JMenu                  MenuEvent                   MenuListener
-------------------------------------------------------------------------------------------------------
JPopupMenu               PopupMenuEvent                PopupMenuListener
-------------------------------------------------------------------------------------------------------
JPRogressBar              ChangeEvent                  ChangeListener
-------------------------------------------------------------------------------------------------------
JSlider                 ChangeEvent                  ChangeListener
-------------------------------------------------------------------------------------------------------
JScrollBar               AdjustmentEvent                AdjustMentListener
-------------------------------------------------------------------------------------------------------
JTable                 ListSelectionEvent              ListSelectionListener
                    TableModeEvent                TableModeListener
                    TableColumnModelEvent             TableColumnModeListener
                    CellEditorEvent                CellEditorListener
-------------------------------------------------------------------------------------------------------
JTabbedPane               ChangeEvent                  ChangeListener
-------------------------------------------------------------------------------------------------------
JTree                  TreeSelectionEvent              TreeSelectionListener
                    TreeEXPansionEvent              TreeExpansionListener
                    TreeWillExpandEvent              TreeWillExpandListener
                    TreeModeEvent                 TreeModeListener  
-------------------------------------------------------------------------------------------------------
JTimer                 ActionEvent                  ActionListener
-------------------------------------------------------------------------------------------------------  
     底层事件:

---------------------------------------------------------------------------------------------------------------

   Event                                   Listener
  ComponentEvent                             ComponentListener
  ContainerEvent                             ConatainerListener
  FocusEvent                               FocusListener
  KeyEvent                                KeyListener
  MouseEvent                               MouseListener
  MouseMotionEvent                            MouseMotionListener
  WindowEvent                              WindowListener
ComponentEvent:主要处理组件大小的改变,位置的改变,或是可见与不可见状态(hidden or visible)等。
ContainerListener:主要在处理组件的加入或移出容器。
FocusListener:主要在处理焦点的取得或移开焦点等操作。
MouseListener:主要就是在处理鼠标是否在某个组件上,是否按下鼠标键,是否离开某个组件等操作,主要针对鼠标按键与位置
        作处理。
MouseMotionListener:主要就是在追踪鼠标的位置,如(X,Y)坐标的位置,主人是针对鼠标坐标与拖曳操作作处理。
WindowListener:主要在处理窗口的所有操作。如处理active窗口或是de-active窗口,处理窗口的最大、最小化,处理窗口的关闭
        、打开、退出等。

  以上所述的每种EventListener都是一种interface,里面只有定义这个EventListener的interface,然后在这个类中,把要处理事
件的程序代码写在此interface的方法中。这是处理事件的标准操作,当然还有其他编写模式,如:利用inner class的匿名类方法
,就可以不用在class后面加上implements EventListener的表示法,或是利用Adapter类,就不用一一将interface中的每种方法都
实现。
  让我们来了解一下,每一种EventListener的interface到底提供了哪几种方法要我们实现(Implement)!我们把事件区分成是由
Swing或是AWT所引发:
    Swing EventListener                      Method
----------------------------------------------------------------------------------------------------------------
     CaretListener                     caretUpdate(CaretEvent e)
--------------------------------------------------------------------------------------------------------------
     CellEditorListener                  editingCanceled(ChangeEvent e)
                                editingStopped(ChangeEvent e)
--------------------------------------------------------------------------------------------------------------
     ChangeListener                    stateChanged(ChangeEvent e)
--------------------------------------------------------------------------------------------------------------
     DocumentListener                   changedUpdate(DocumentEvent e)
                                insertUpdate(DocumentEvent e)
                                removeUpdate(DocumentEvent e)
--------------------------------------------------------------------------------------------------------------
     HyperlinkListener                   hyperlinkUpdate(HyperlinkEvent e)
--------------------------------------------------------------------------------------------------------------
     ListDataListener                   contentsChanged(ListdataEvent e)
                                intervalAdded(ListDataEvent e)
                                intervalRemoved(ListDataEvent e)
--------------------------------------------------------------------------------------------------------------
     ListSelectionListener                 valueChanged(ListSelectionEvent e)
--------------------------------------------------------------------------------------------------------------
     MenuDragMouseListener                 menuDragMouseDragged(MenuDragMouseEvent e)
                                menuDragMouseEntered(menuDragMouseEvent e)
                                menuDragMouseExited(MenuDragMouseEvent e)
                                menuDragMouseReleased(MenuDragMouseEvent e)
--------------------------------------------------------------------------------------------------------------
     MenuKeyListener                    menuKeyPressed(MenuKeyEvent e)
                                menuKeyReleased(MenuKeyEvent e)
                                menuKeyTyped(MenuKeyEvent e)
--------------------------------------------------------------------------------------------------------------
     MenuListener                     menUCanceled(MenuEvent e)
                                menuDeselected(MenuEvent e)
                                menuSelected(MenuEvent e)
--------------------------------------------------------------------------------------------------------------
     PopupMenuListener                   popupMenuCanceled(PopupMenuEvent e)
                                popupMenuWillBecomeInvisible(PopupMenuEvent e)
                                popupMenuWillBecomeVisible(PopupMenuEvent e)
--------------------------------------------------------------------------------------------------------------
     TableColumnModelListener               columnAdded(TableColumnModelEvent e)
                                columnMarginChanged(ChangeEvent e)
                                columnMoved(TableColumnModelEvent e)
                                columnRemoved(TableColumnModelEvent e)
                                columnSelectionChanged(ListSelectionEvent e)
--------------------------------------------------------------------------------------------------------------
     TableModelListener                  tableChanged(TableModelEvent e)
--------------------------------------------------------------------------------------------------------------
     TreeExpansionListener                 treeCollapsed(TreeExpansionEvent event)
                                treeExpanded(TreeExpansionEvent event)
---------------------------------------------------------------------------------------------------------------
     TreeModelListener                   treeNodesChanged(TreeModelEvent e)
                                treeNodesInserted(TreeModelEvent e)
                                treeNodesRemoved(TreeModelEvent e)
                                treeStructureChanged(TreeModelEvent e)
---------------------------------------------------------------------------------------------------------------
     TreeSelectionListener                 valueChanged(TreeSelectionEvent e)
---------------------------------------------------------------------------------------------------------------
     TreeWillExpandListener                treeWillCollapse(TreeExpansionEvent event)
                                treeWillExpand(TreeExpansionEvent event)
---------------------------------------------------------------------------------------------------------------
     UndoableEditListener                 undoableEditHappened(UndoableEditEvent e)
---------------------------------------------------------------------------------------------------------------
          

       AWT EventListener                     Method           
         --------------------------------------------------------------------------------------------------------------
      ActionListener                    actionPerformed(ActionEvent e)
--------------------------------------------------------------------------------------------------------------
      AdjustmentListener                  adjustmentValueChanged(AdjustmentEvent e)
--------------------------------------------------------------------------------------------------------------
      ComponentListener                   componentHidden(ComponentEvent e)
                                componentMoved(ComponentEvent e)
                                componentResized(ComponentEvent e)
                                componentShown(ComponentEvent e)
--------------------------------------------------------------------------------------------------------------
      ContainerListener                   componentAdded(ContainerEvent e)
                                componentRemoved(ContainerEvent e)
--------------------------------------------------------------------------------------------------------------
      FocusListener                     focusGained(FocusEvent e)
                                focusLost(FocusEvent e)
--------------------------------------------------------------------------------------------------------------
      ItemListener                     itemStateChanged(ItemEvent e)
--------------------------------------------------------------------------------------------------------------
      KeyListener                      keyPressed(KeyEvent e)
                                keyReleased(KeyEvent e)
                                keyTyped(KeyEvent e)
--------------------------------------------------------------------------------------------------------------
      MouseListener                     mouseClicked(MouseEvent e)
                                mouseEntered(MouseEvent e)
                                mouseExited(MouseEvent e)
                                mousePressed(MouseEvent e)
                                mouseReleased(MouseEvent e)
--------------------------------------------------------------------------------------------------------------
      MouseMotionListener                  mouseDragged(MouseEvent e)
                                mouseMoved(MouseEvent e)
--------------------------------------------------------------------------------------------------------------
      WindowListener                    windowActivated(WindowEvent e)
                                windowClosed(WindowEvent e)
                                windowClosing(WindowEvent e)
                                windowDeactivated(WindowEvent e)
                                windowDeiconified(WindowEvent e)
                                windowIconified(WindowEvent e)
                                windowOpened(WindowEvent e)
---------------------------------------------------------------------------------------------------------------

常用的Adapter类如下:
        Adapter                      对应的EventListener
---------------------------------------------------------------------------------------------------------------
     java.awt.event.ComponentAdapter            ComponentListener
     java.awt.event.ContainerAdapter            ContainerListener
     java.awt.event.FocusAdapter              FocusListener
     java.awt.event.KeyAdapter               KeyListener
     java.awt.event.MouseAdapter              MouseListener
     java.awt.event.MouseMotionAdapter           MouseMotionListener
     java.awt.event.WindowAdapter             WindowListener
---------------------------------------------------------------------------------------------------------------
  在java中提供两个方法让你知道到底是哪个组件触发了事件,那就是getSource()与getActionCommane();getActionCommand()
方法是ActionEvent类所提供,而getSource()方法是EventObject类所提供,但ActionEvent类继续了EventObject类,因此这两个
方法ActionEvent都可以使用,看下面的例子就知道了:
EventDemo5.java

import java.awt.*;
import java.awt.event.*;
import javax.swing.*;

public class EventDemo5 extends WindowAdapter implements ActionListener
{
   JButton b1 = null;
   JButton b2 = null;
  
   public EventDemo5()
   {
     JFrame f = new JFrame("EventDemo5");
     Container contentPane = f.getContentPane();
     contentPane.setLayout(new GridLayout(1,2));
     b1 = new JButton("按我有声音喔");
     b2 = new JButton("按我可开新窗口");
     b1.addActionListener(this);
     b2.addActionListener(this);
     contentPane.add(b1);
     contentPane.add(b2);
     f.pack();
     f.show();
     f.addWindowListener(this);
   }

   public void actionPerformed(ActionEvent e)
   {
     if(e.getSource()==b1)//getSource判定哪个按钮被按下了。
       Toolkit.getDefaultToolkit().beep();
     if(e.getSource()==b2)
     {
       JFrame newF = new JFrame("新窗口");
       newF.setSize(200,200);
       newF.show();
     }
   }
  
   public void windowClosing(WindowEvent e)
   {
     System.exit(0);
   }
  
   public static void main(String args[])
   {
     new EventDemo5();
   }
}

-------------------------------------------------------------------------------------------------------------
EventDemo6.java 

import java.awt.*;
import java.awt.event.*;
import javax.swing.*;

public class EventDemo6 extends WindowAdapter implements ActionListener
{
   JButton b1 = null;
   JButton b2 = null;
  
   public EventDemo6()
   {
     JFrame f = new JFrame("EventDemo6");
     Container contentPane = f.getContentPane();
     contentPane.setLayout(new GridLayout(1,2));
     b1 = new JButton("按我有声音喔");
     b2 = new JButton("按我可开新窗口");
     b1.addActionListener(this);
     b2.addActionListener(this);
     contentPane.add(b1);
     contentPane.add(b2);
     f.pack();
     f.show();
     f.addWindowListener(this);
   }

   public void actionPerformed(ActionEvent e)
   {
     if((e.getActionCommand()).equals("按我有声音喔")) //getActionCommand()方法会返回按钮上的文字字符串。
       Toolkit.getDefaultToolkit().beep();
     if((e.getActionCommand()).equals("按我可开新窗口"))
     {
       JFrame newF = new JFrame("新窗口");
       newF.setSize(200,200);
       newF.show();
     }
   }
  
   public void windowClosing(WindowEvent e)
   {
     System.exit(0);
   }
  
   public static void main(String args[])
   {
     new EventDemo6();
   }
}

   


Tags:Swing 读书 笔记

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接