1. 程式人生 > >java事件監聽器使用小結(個人總結,有錯請指)

java事件監聽器使用小結(個人總結,有錯請指)

//第一種:外部定義,通過監聽器的物件來呼叫的監聽器    


import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.*;
 
       //定義監聽器
class  MyListener implements ActionListener
{
       public voidactionPerformed(ActionEvent e)
       {
           JOptionPane.showMessageDialog(null,"按鈕被點選");//彈出訊息對話方塊


       }
      
}
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
public class TestListener{
         
       //主方法
       public static void main(String[]args){
           //建立圖形介面 
              JFrame frame=newJFrame("監聽器的用法");
              frame.setSize(400, 300);
              frame.setLocationRelativeTo(null);//null即為空,框架在螢幕中居中顯示
              frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
              frame.setVisible(true);
              JPanel panel=new JPanel(); 
              frame.add(panel);
              JButton jbt=newJButton("按鈕");
              panel.add(jbt);
             
              MyListener mylistener = newMyListener();
              jbt.addActionListener(mylistener);
         }
}


==============================================================================================


==============================================================================================
//第二種:內部定義呼叫的監聽器(匿名內部類作為事件監聽器)


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


/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
public class TestListener{
         
       //主方法
       public static void main(String[]args){
           //建立圖形介面 
              JFrame frame=newJFrame("監聽器的用法");
              frame.setSize(400, 300);
              frame.setLocationRelativeTo(null);//null即為空,框架在螢幕中居中顯示
              frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
              frame.setVisible(true);
              JPanel panel=new JPanel(); 
              frame.add(panel);
              JButton jbt=newJButton("按鈕");
              panel.add(jbt);
             
               //內部定義監聽器
              jbt.addActionListener(newActionListener(){
                     
                        public void actionPerformed(ActionEvent e){
       
                             JOptionPane.showMessageDialog(null,"按鈕被點選");//彈出訊息對話方塊


                            }   
                        });
                }
}




==============================================================================================

==============================================================================================
//第三種:外部定義,內部呼叫的監聽器(與第一種類似)


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

 //定義監聽器
class  MyListener implements ActionListener
{
       public voidactionPerformed(ActionEvent e)
       {
           JOptionPane.showMessageDialog(null,"確認按鈕被點選");//彈出訊息對話方塊


       }
      
}

////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
public class TestListener{
         
       //主方法
       public static void main(String[]args){
           //建立圖形介面 
              JFrame frame=newJFrame("監聽器的用法");
              frame.setSize(400, 300);
              frame.setLocationRelativeTo(null);//null即為空,框架在螢幕中居中顯示
              frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
              frame.setVisible(true);
              JPanel panel=new JPanel();
              frame.add(panel);
              JButton jbt=newJButton("按鈕");               
              panel.add(jbt);
           

              jbt.addActionListener(newMyListener());
                
          }

}

//第四種:在構造方法中使用this來呼叫的監聽器(自身類作為事件監聽器)

import javax.swing.*;

import java.awt.event.*;

class TestListener implements ActionListener{

       //構造方法     

    publicTestListener(){

                  //建立圖形介面

                     JFrameframe=new JFrame("監聽器的用法");

                     frame.setSize(400,300);

                     frame.setLocationRelativeTo(null);//null即為空,框架在螢幕中居中顯示

                     frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

                     frame.setVisible(true);

                     JPanelpanel=new JPanel();

                     frame.add(panel);

                     JButtonjbt=new JButton("按鈕");               

                     panel.add(jbt);                      

                     //新增監聽器

                     jbt.addActionListener(this);

     }

    //定義監聽器

       publicvoid actionPerformed (ActionEvent e){

              JOptionPane.showMessageDialog(null,"確認按鈕被點選");//彈出訊息對話方塊

       }     

    //主方法

       publicstatic void main(String args[]){

         new TestListener();//直接呼叫構造方法,當然你也可以用TestListener類定義一個

//物件來自動呼叫構造方法

       }

}