자바 Event 핸들러 ActionListener와 ActionEvent
FocusListener, FocusAdapter와 FocusEvent
- . Focus 타입의 Event는 인터페이스인 FocusListener와 클래스인 FocusAdapter를 가진다 .
- . 관련 메서드 :
- public void focusGained(FocusEvent e) {}
- public void focusLost(FocusEvent e) {}
Focus타입은 대부분의 실무에서 사용됨 Event가 하는 역할은 해당 컴포넌트가 포커스(Focus) 를 얻었는지 혹은 잃었는지에 대한 여부를 판단하는 것이다 .
ex ) 이예제는 Focus Event의 작동 내용은 이름필드에 아무것도 넣지 않았을 때에는 주민등록 번호
필드로 이동을 못하게 할 것이고 주민등록번호 첫 번째 필드에 6자리의 수를 입력하지 않았을 때에
는 주민등록번호 두번째 자리로 이동하지 못하게 하는 예제
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81
| import java.awt.*; import java.awt.event.*;
class Round18_Ex03_Sub extends Frame implements FocusListener { private BorderLayout lb = new BorderLayout(); private Label lb = new Label("이름 = ", Label.RIGHT); private Label lb1 = new Label("주민번호 = ", Label.RIGHT); private TextField tf = new TextField(); private TextField tf1 = new TextField(); private TextField tf2 = new TextFileld(); private Button bt = new Button("확인"); private Button bt1 = new Button("취소");
public Round19_Ex03_Sub() { super("Focus Event !!"); this.init(); this.start(); this.setSize(200, 100); this.setVisible(true); }
public void init() { this.setLayout(bl); Panel p = new Panel(new GridLayout(2, 1)); p.add(tf); Panel p1 = new Panel(new GridLayout(1, 2, 5, 5)); p1.add(tf1); p1.add(tf2); p.add(p1); this.add("Center", p); Panel p2 = new Panel(new GridLayout(2, 1)); p2.add(lb); p2.add(lb1); this.add("West", p2); Panel p3 = new Panel(new FlowLayout(FlowLayout.RIGHT)); p3.add(bt); p3.add(bt1); this.add("South", p3); }
public void start() { tf1.addFocusListener(this); tf2.addFocusListener(this); }
public void focusGained(FocusEvent e) { if (e.getSource() == tf1) { int x = tf.getText().trim().length(); if (x == 0) { tf.request.Focus(); } } else if (e.getSource() == tf2) { int x = tf1.getText().trim().length(); if (x != 6) { tf1.setText(""); tf1.requestFocus(); } } }
public void focusLost(FocusEvent e) { } }
public class Round19_Ex03 { public static void main(String[] ar) { Round19_Ex03_Sub es = new Round19_Ex03_Sub(); } }
|