개발 등/중급

이벤트 클래스 생성방법과 정의

darkhorizon 2008. 9. 3. 21:47
728x90
반응형

여기서는 버튼에 이벤트 클래스를 연동해서 버튼에 이벤트를 주는 방법을 설명합니다.

- Event Handler 클래스 생성법 4가지
Listener 클래스를 구현하는 방법
Adapter 클래스를 상속받는 방법
Frame 클래스에 Listener를 구현하는 방법
익명 중첩 클래스를 사용하는 방법

- Event 작성법
처리하고자 하는 종류의 Event 클래스 생성
컴포넌트에 대해 관련 Event를 추가

-> 익명 중첩 클래스를 사용하는 방법

 
  1. // 익명 중첩 클래스를 사용하는 방법 
  2.  
  3. import java.awt.*;  
  4. import java.awt.event.*;  
  5. class Exam_01_Sub extends Frame  
  6.     private Button bt = new Button("확인");  
  7.     private GridBagLayout gbl = new GridBagLayout();  
  8.     public Exam_01_Sub(String title) { 
  9.         super(title);  
  10.          
  11.         this.init();  
  12.         this.start();  
  13.          
  14.         super.setSize(300, 200);  
  15.         Dimension screen = Toolkit.getDefaultToolkit().getScreenSize();  
  16.         Dimension frm = super.getSize();  
  17.         int xpos = (int)(screen.getWidth() / 2 - frm.getWidth() / 2);  
  18.         int ypos = (int)(screen.getHeight() / 2 - frm.getHeight() / 2);  
  19.         super.setLocation(xpos, ypos);  
  20.         super.setResizable(false);  
  21.         super.setVisible(true);  
  22.     } 
  23.     public void init() { 
  24.         this.setLayout(gbl);  
  25.         this.add(bt);  
  26.     } 
  27.     public void start() { 
  28.         MouseAdapter ma = new MouseAdapter() { 
  29.             public void mouseClicked(MouseEvent e) { 
  30.                 System.exit(0);  
  31.             } 
  32.         };  
  33.         bt.addMouseListener(ma);  
  34.     } 
  35. }  
  36.  
  37. public class Exam_01 { 
  38.     public static void main(String[] ar) { 
  39.         Exam_01_Sub ex = new Exam_01_Sub("제목");  
  40.     } 
  41. }  

-> Listener 클래스를 구현하는 방법
 
  1. // Listener 클래스를 구현하는 방법 
  2.  
  3. import java.awt.*;  
  4. import java.awt.event.*;  
  5.  
  6. class Exam_02_Sub extends Frame  
  7. {  
  8.     private Button bt1 = new Button("확인");  
  9.      
  10.     private GridBagLayout gb1 = new GridBagLayout();  
  11.      
  12.     public Exam_02_Sub(String title)  
  13.     { 
  14.         this.init();    
  15.         this.start();  
  16.          
  17.         super.setSize(300, 200);  
  18.         super.setTitle(title);                        
  19.         Dimension screen = Toolkit.getDefaultToolkit().getScreenSize();    
  20.         Dimension frm = super.getSize();              
  21.         int xpos = (int)(screen.getWidth() / 2 - frm.getWidth() / 2);    
  22.         int ypos = (int)(screen.getHeight() /2 - frm.getHeight() / 2);    
  23.         super.setLocation(xpos, ypos);    
  24.         super.setResizable(false);    
  25.         super.setVisible(true);  
  26.     } 
  27.      
  28.     public void init()  
  29.     { 
  30.         this.setLayout(gb1);  
  31.         this.add(bt1);  
  32.     } 
  33.      
  34.     public void start()  
  35.     { 
  36.         A ap = new A();  
  37.         bt1.addActionListener(ap);  
  38.     } 
  39. }  
  40.  
  41. class A implements ActionListener  
  42. {  
  43.     public void actionPerformed(ActionEvent e)  
  44.     { 
  45.         System.exit(0);  
  46.     } 
  47. }  
  48.  
  49. public class Exam_02 { 
  50.     public static void main(String[] ar)  
  51.     { 
  52.         Exam_02_Sub ex = new Exam_02_Sub("제목");  
  53.     } 
  54. }  

-> Adapter 클래스를 상속받는 방법
  1. // Adapter 클래스를 상속받는 방법 
  2.  
  3. import java.awt.*;  
  4. import java.awt.event.*;  
  5.  
  6. class Exam_03_Sub extends Frame  
  7. {  
  8.     private Button bt1 = new Button("확인");  
  9.      
  10.     private GridBagLayout gb1 = new GridBagLayout();  
  11.      
  12.     public Exam_03_Sub(String title)  
  13.     { 
  14.         this.init();    
  15.         this.start();  
  16.          
  17.         super.setSize(300, 200);  
  18.         super.setTitle(title);                        
  19.         Dimension screen = Toolkit.getDefaultToolkit().getScreenSize();    
  20.         Dimension frm = super.getSize();              
  21.         int xpos = (int)(screen.getWidth() / 2 - frm.getWidth() / 2);    
  22.         int ypos = (int)(screen.getHeight() /2 - frm.getHeight() / 2);    
  23.         super.setLocation(xpos, ypos);    
  24.         super.setResizable(false);    
  25.         super.setVisible(true);  
  26.     } 
  27.      
  28.     public void init()  
  29.     { 
  30.         this.setLayout(gb1);  
  31.         this.add(bt1);  
  32.     } 
  33.      
  34.     public void start()  
  35.     { 
  36.         C ap = new C();  
  37.         bt1.addMouseListener(ap);  
  38.     } 
  39. }  
  40.  
  41. class C extends MouseAdapter  
  42. {  
  43.     public void mouseClicked(MouseEvent e)  
  44.     { 
  45.         System.exit(0);  
  46.     } 
  47. }  
  48.  
  49. public class Exam_03 { 
  50.     public static void main(String[] ar)  
  51.     { 
  52.         Exam_03_Sub ex = new Exam_03_Sub("제목");  
  53.     } 
  54. }  

-> Frame 클래스에 Listener를 구현하는 방법
 
  1. // Frame 클래스에 Listener를 구현하는 방법  
  2.  
  3. import java.awt.*;  
  4. import java.awt.event.*;  
  5.  
  6. class Exam_04_Sub extends Frame implements MouseListener  
  7. {  
  8.     private Button bt1 = new Button("확인");  
  9.      
  10.     private GridBagLayout gb1 = new GridBagLayout();  
  11.      
  12.     public Exam_04_Sub(String title)  
  13.     { 
  14.         this.init();    
  15.         this.start();  
  16.          
  17.         super.setSize(300, 200);  
  18.         super.setTitle(title);                        
  19.         Dimension screen = Toolkit.getDefaultToolkit().getScreenSize();    
  20.         Dimension frm = super.getSize();              
  21.         int xpos = (int)(screen.getWidth() / 2 - frm.getWidth() / 2);    
  22.         int ypos = (int)(screen.getHeight() /2 - frm.getHeight() / 2);    
  23.         super.setLocation(xpos, ypos);    
  24.         super.setResizable(false);    
  25.         super.setVisible(true);  
  26.     } 
  27.      
  28.     public void init()  
  29.     { 
  30.         this.setLayout(gb1);  
  31.         this.add(bt1);  
  32.     } 
  33.      
  34.     public void start()  
  35.     { 
  36.         bt1.addMouseListener(this);  
  37.     } 
  38.      
  39.     public void mouseClicked(MouseEvent e)  
  40.     { 
  41.         System.exit(0);  
  42.     } 
  43.      
  44.     public void mouseEntered(MouseEvent e) {}  
  45.     public void mouseExited(MouseEvent e) {}  
  46.     public void mousePressed(MouseEvent e) {}  
  47.     public void mouseReleased(MouseEvent e) {}  
  48. }  
  49.  
  50. public class Exam_04 { 
  51.     public static void main(String[] ar)  
  52.     { 
  53.         Exam_04_Sub ex = new Exam_04_Sub("제목");  
  54.     } 
  55. }  
모두 결과는 똑같구요.

사용자 삽입 이미지

누르면 닫힙니다 -_-

출처 :
http://thx4alice.tistory.com/trackback/194






728x90