'ActionListener'에 해당되는 글 1건

  1. 2008.06.08 awt, ActionListener, WindowListener, WindowAdapter
반응형
 


//action event 처리하기

import java.awt.*;
import java.awt.event.*;

public class Action implements ActionListener{
 Frame f;
 Button b;
 public static void main(String args[]){
  Action a = new Action();
 }
 public Action(){
  f = new Frame();
  b = new Button("QUIT");
 
  f.add(b);
  b.addActionListener(this);
  f.setSize(200,200);
  f.setVisible(true);
 }
 public void actionPerformed(ActionEvent e){
  b.setBackground(Color.red);
  b.setLabel(""QUIT");
 }
}

//addActionListener()를 통해 해당 버튼의 이벤트를 Frame에 등록한다.
//해당 버튼이 클릭이 일어나면 public vodi actionPerformed(ActionEvent e)에 의해 상태가 변하고, 해당하는 코드가 실행된다.


//앞의 코드는 버튼이 었고 이번에는 윈도우에 대한 이벤트를 다루어 보자

import java.awt.*;
import java.awt.event.*;

public class Action implements WindowListener{
 Frame f;
 public static void main(String args[]){
  Action a = new Action();
 }
 public Action(){
  f = new Frame();
  f.addWindowListener(this);
  f.setSize(200,200);
  f.setVisible(true);
 }
 public void windowClosing(WindowEvent e){
  System.exit(0);
 }
 public void windowActivated(WindowEvent e){}
 public void windowClosed(WindowEvent e){}
 public void windowOpened(WindowEvent e){}
 public void windowDeactivated(WindowEvent e){}
 public void windowDeiconified(WindowEvent e){}
 public void windowIconified(WindowEvent e){}
}

addWindowListener()로 이벤트 코드를 등록한 뒤 메소드 구현한다.
 그러나, 리스너 인터페이스들을 implements 했을 때는 필요없는 메소들도 모두 구현해야 하는 불편함이 있기 때문에, 이를 추상 메소드로 만든 클래스인 어댑터클래스를 사용할 수 있다.


<Listener interface>

ComponentListener : ComponentAdapter (나머지도 모두 이름 뒤에 Adaptor가 붙는다)

ContainerListener

FocusListener

MouseListener

MouseMotionListener

WindowListener

KeyListener

 


다음은 어댑터 클래스 사용의 예제이다.

import java.awt.*;
import java.awt.event.*;

public class Action extends WindowAdapter{
 Frame f;
 public static void main(String args[]){
  Action a = new Action();
 }
 public Action){
  f = new Frame();
  f.addWindowListener(this);
  f.setSize(200,200);
  f.setVisible(true);
 }
 public void windowClosing(WindowEvent e){
  System.exit(0);
 }
}

 

반응형