'Event'에 해당되는 글 7건

  1. 2008.01.14 그 외 이벤트리스너 인터페이스 by 청웨일
  2. 2008.01.14 TextListener 인터페이스 by 청웨일
  3. 2008.01.10 ItemListener 인터페이스 by 청웨일
  4. 2008.01.08 AdjustmentListener 인터페이스 by 청웨일
  5. 2008.01.03 ActionListener 인터페이스 by 청웨일
KeyListener인터페이스 // KeyAdaoter클래스

KeyListener인터페이스

keyPressed() - 키를 눌렀을때
keyReleased() - 눌렀던 키를 띄었을때
keyTyped() - 키를 누르고 띄는 것이 한쌍으로 진행될때

KeyAdaoter클래스

위 메소드들을 내용없는 더미로 구현한 것을 제공한다.
클래스를 확장하고 단지 선택한 메소드만 구현할수 있도록 해준다.
인터페이스가 아닌 한개의 클래스를 확장한 클래스라서 두번째 클래스를 확장할수 없다.


WindowListener인터페이스 // WindowAdapter클래스

WindowListener인터페이스

- 전체 윈도우에서 이벤트가 발생할 때 통지를 받는데 사용한다.

WindowAdapter클래스

- AWT예제 대부분에서 windowClosing()메소드를 다룬 클래스를 선언하도록 사용했다.
- 윈도우가 닫힐때 AWT가 곧바로 처리를 중지할 것이 아니기 때문에 요구된다.

class WinCloser extends WindowAdapter {
 public void windowClosing(WindowEvent e) {
  System.exit(0);
 }
}
-이 클래스가 수행하는 것은 System.exit(0)명령을 실행함으로써 전체 처리를 종료한다.


ComponentListener인터페이스 // ComponentAdapter클래스

ComponentListener인터페이스

- 컴포넌트의 숨기기, 가시화, 이동, 크기조정과 같은 일이 발생할때마다
   프로그램에게 알려주는 4개의 메소드를 포함한다.
- 등록된 컴포넌트에서 발생하는 것을 알아내고 이것을 프로그램에서 유지한다.

ComponentAdapter클래스 : 모든 4가지 메소드에 대한 더미버전을 제공한다.

MouseListener인터페이스 // MouseAdapter클래스

MouseListener인터페이스

- 마우스관련 제공
- 마우스버튼이 클릭되었을때뿐 아니라 마우스가 컴포넌트 위에 올라올때도 알려준다.

MouseAdapter클래스 : 인터페이스에 있는 메소드 더미구현을 제공

- 마우스의 실제 좌표들이 인터페이스에 의해서 제공되지는 않는다.


MouseMotionListener인터페이스 // MouseMotionAdapter클래스

MouseMotionListener인터페이스

- 마우스버튼이 눌려져서 드래그 작동을 하고 있는지 여부와 마우스의 좌표를 결정하는데 사용하기위한
   MouseEvent를 받는다.

MouseMotionAdapter : 쉽게 구현할수 있도록 제공

- 이벤트가 발생하는 원인은 픽셀(Pixel)의 변화때문이다.
   부드럽게 화면이동을 생성할 필요가 있을때 뛰어난 제어기능을 제공한다.



Posted by 청웨일

TextListener 인터페이스

C/Java : 2008. 1. 14. 11:54

TextField내에서 내용이 변경되면 특정 행동을 발생시킨다.



- tField에 키보드 입력을 하면 입력값이 숫자인지 아닌지 검사하여 숫자면 tField2에 출력한다.
- 숫자검사로 TextListener인터페이스를 사용한다.

package EventListener;

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

public class TestTextListener extends Frame implements TextListener {
//한개의 메소드만 재정의

//2개의 텍스트 필드선언
 TextField tField;              //텍스트 입력
 TextField tField2;             //숫자만 필터링하여 출력
 
 public TestTextListener() {
//텍스트 필드 인스턴스화
  tField = new TextField(20);
  tField2 = new TextField(20);
  tField.addTextListener(this);   //키보드 입력을 받을 텍스트 필드만 리스터 등록
  add(tField);
  add(tField2);
 
  this.setLayout(new FlowLayout());
 
  addWindowListener(new WinCloser());
  setTitle("Using a TextListener Object");
  setBounds(100,100,400,400);
  setVisible(true);
 }

 public static void main(String[] args) {
  TestTextListener ttl = new TestTextListener();
 }
 
//TextListener인터페이스에 의해 요구
//이벤트가 발생한 TextField에 관한 정보를 포함한 TextEvent를 받는다
 public void textValueChanged(java.awt.event.TextEvent te) {
//이벤트를 발생시킨 텍스트필드에 대한 핸들을 얻는다.
  TextField tf = (TextField)te.getSource();

//텍스트필드의 현재 상태 구현
  String s1 = tf.getText();
//마지막으로 입력된 문자를 가진 문자열을 얻기 위해 substring()을 사용한다.
  int strlen = s1.length();
  String lastCharString = s1.substring(strlen-1);
 
//입력문자가 정수인지 아닌지 결정하기 위한 에러처리
  try {
   int i = Integer.parseInt(lastCharString);   //문자열이 숫자를 포함하고 있지 않으면 예외
   tField2.setText(tField2.getText() + lastCharString);  //예외가 던져지면 실행되지 않는다.
  }
  catch (NumberFormatException nfe) {
   System.out.println("not a number");
  }
 }
}

class WinCloser extends WindowAdapter {
 public void windowClosing(WindowEvent e) {
  System.exit(0);
 }
}


- 편리하지만 자원의 소비가 높다.
- 일반적으로 GUI프로그램은 필요한 CPU 사이클이 쉽게 사용가능할 정도로 가벼워야 한다.

Posted by 청웨일

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 청웨일

AdjustmentListener인터페이스는 Scrollbar클래스와 관련있다.

Scrollbar의 엘리베이터가 이동될때 AdjustmentEvent가 발생한다.

프로그램에서 Scrollbar의 현재값을 얻어낼수 있고 그것에 반응할수 있다.



package EventListener;

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

public class TestScrollbar extends Frame implements AdjustmentListener {
 Scrollbar sb;
 TextField tField;

 //TestScrollbar인스턴스 생성
 public TestScrollbar() {
  sb=new Scrollbar(Scrollbar.VERTICAL, 0,1,0,255);
//초기값 0을 갖는 수직 스크롤바를 생성한다
//엘리베이터의 크기는 1이고 최소 0에서 255까지 갖는다

  sb.addAdjustmentListener(this);      //스크롤바에 리스너 추가
  add(sb);                                      //프레임에 스크롤바 추가
 
  tField = new TextField(30);
  add(tField);
 
  this.setLayout(new FlowLayout());
 
  addWindowListener(new WinCloser());
  setTitle("Using a Scrollbar Object ");
  setBounds(100,100,400,400);
  setVisible(true);
 }
 
//메소드
 public void adjustmentValueChanged(AdjustmentEvent ae) {
  String newString = String.valueOf(sb.getValue());
//getvalue()는 int값을 반환하기 때문에 String으로 변환한다.
  tField.setText(newString);
 }
 
 public static void main(String[] args) {
  TestScrollbar tsb = new TestScrollbar();
 }
}

class WinCloser extends WindowAdapter {
 public void windowClosing(WindowEvent e) {
  System.exit(0);
 }
}




Posted by 청웨일
- 메소드 : actionPerformed()
              java.awt.ActionEvent객체를 전달받는다.
                               이벤트 발생후 처리방법
                                   1) getActionCommand() : 발생과 관련있는 이름 반환
                                   2) getModifiers() : 액션이벤트발생시 Shift,Ctrl이 눌렸는지 알린다.
                                   3) paramString() : 발생한 이벤트와 관련있는 정보를 문자열로 반환

* 한개의 메소드만 있기 때문에 어댑터클래스가 필요없다.

구현 예)

http://cotoba.tistory.com/115







Posted by 청웨일