ItemListener 인터페이스

C/Java : 2008. 1. 10. 15:06

메소드 : itemStateChanged()
             List, Checkbox, Choice같은 객체에서 사용자가 변경할때마다 호출

ItemEvent 제공 메소드 : getItemSelectable()
                                   이벤트를 생성한 항목을 말해준다.
                                       항목서브자료형으로 캐스팅 한다.
                                       사용자가 변경하고자 하는 것을 알기위해 서브자료형의 메소드를 사용



package EventListener;

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

//ItemListener인터페이스를 자체적으로 구현한다.
public class TestCheckBoxes2 extends Frame implements ItemListener {  
 Checkbox cbWhiteBread;
 Checkbox cbWheatBread;
 Checkbox cbRyeBread;
 Checkbox cbToasted;           //체크박스 생성
 
 TextField tField;                   //텍스트필드 출력
 
 public TestCheckBoxes2() {

//각 체크박스 생성, 상태지정, 리스너 등록
  cbWhiteBread = new Checkbox("White Bread");
  cbWhiteBread.setState(false);
  cbWhiteBread.addItemListener(this);
 
  cbWheatBread = new Checkbox("Wheat Bread");
  cbWheatBread.setState(false);
  cbWheatBread.addItemListener(this);
 
  cbRyeBread = new Checkbox("Rye Bread");
  cbRyeBread.setState(false);
  cbRyeBread.addItemListener(this);
 
  cbToasted = new Checkbox("Toasted");
  cbToasted.setState(false);
  cbToasted.addItemListener(this);
 
  tField = new TextField(30);
 
  setLayout(new FlowLayout());
  add(cbWhiteBread);
  add(cbWheatBread);
  add(cbRyeBread);
  add(cbToasted);
  add(tField);
 
  addWindowListener(new WinCloser());
  setTitle("Using Checkboxes");
  setBounds(100,100,300,300);
  setVisible(true);
 }
 
 public void itemStateChanged(ItemEvent ie) {    //ItemEvent객체 넘겨줌
  Checkbox cb = (Checkbox)ie.getItemSelectable()//이벤트를 발생시켰던 항목 전달(형변환)
  if(cb.getState())          //체크박스의 현재값을 기준으로 true/false 반환
   tField.setText(cb.getLabel() + " was set to true");
  else
   tField.setText(cb.getLabel() + " was set to false");
 }
 
 public static void main(String[] args) {
  TestCheckBoxes2 tcb = new TestCheckBoxes2();
 }
}


- 최근에 변한 값을 출력한다.

Posted by 청웨일