반응형
 


//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);
 }
}

 

반응형
반응형

자바로 GUI를 윈도우 기반으로 했을 때, 버튼을 만들고 마우스로 클릭했을 때,
해당 Frame을 닫을 수 있게 하는 코드이다.

import java.awt.*;
public class JPlayer extends Frame implements ActionListener {

  private Button quit;
  quit = new Button("Quit");
  quit.addActionListener(this);

  JPlayer(){}
 
 public void actionPerformed(ActionEvent e) {
  String arg = e.getActionCommand();

  if ("QUIT".equals(arg)) {
   System.out.println("QUIT");
   dispose();
  }
 }
 public static void main(String arg[])
{
 JPlayer j = new JPlayer();
}
}
 

반응형