자바 Event 핸들러 ActionListener와 ActionEvent

자바 Event 핸들러 ActionListener와 ActionEvent


java.util.EventObject


  • . 메서드(Methods)
    Method 내용
    Object getSource() Event 가 발생된 대상 객체의 이름 얻기

@ . java.AWT.Event

  • . 메서드(Methods)
    Method 내용
    int getID() Event의 Type얻기
    void setSource(Object newsource) Event 발생에 대한 특정 객체를 설정하기

@ . java.awt.event.ActionEvent

  • . 멤버변수(Fields)
    필드속성 필드명 내용
    static final int ALT_MASK Alt 키에 대한 값
    static final int CTRL_MASK Ctrl 키에 대한 값
    static final int SHIFT_MASK Shift 키에 대한 값

  • . 메서드(Methods)
    Method 내용
    String getActionCommand() 설정된 Action 명령어 얻기
    int getModifiers() Alt, Ctrl, Shift 중 어떤 키를 눌렀는지 얻기
    long getWhen() Event 가 발생된 시간 얻기

ex )

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
import java.awt.*;

public class Round17_Ex02 {
public static void main(String[] ar) {
Round17_Ex02_Sub round = new Round17_Ex02_Sub();
}
}

class Round17_Ex02_Sub extends Frame implements ActionListener {
// ActionListener를 인터페이스로 받는다
private Dimension dimen, dimen1;
private int xpos, ypos;
private Label lb1 = new Label("Test");
private Button bt1 = new Button("버튼1");
private Button bt2 = new Button("버튼2");

public Round17_Ex02_Sub() {
super("제목넣기");
// Frame을 상속받았기 때문에 super로 상위 상속자 호출
this.init();
this.start();
this.setSize(300, 200);
// Frame을 상속받아 this의 메소드 호출한다 가로300, 세로 200의 Frame세팅
dimen = Toolkit.getDefaultToolkit().getScreenSize();
// 화면의 스크린 가로/세로 스크린 사이즈를 가져온다
dimen1 = this.getSize();
// Frame의 가로/세로 스크린 사이즈를 가져온다
xpos = (int) (dimen.getWidth() / 2 - dimen1.getWidth() / 2);
// 정중앙의 x값을 구한다 화면의 가로 사이즈를 2로 나눈값과 Frame의 가로 사이즈를 2로
// 나눈값을 뺀다 그럼 정중앙의 x값을 구한다
ypos = (int) (dimen.getHeight() / 2 - dimen1.getHeight() / 2);
// 정중앙의 y값을 구한다 화면의 세로 사이즈를 2로 나눈값과 Frame의 세로 사이즈를 2로
// 나눈값을 뺀다 그럼 정중앙의 y값을 구한다
this.setLocation(xpos, ypos);
// Frame의 띄울 위치를 x값과 y값으로 띄울 위치를 설정한다.
this.setVisible(true);
// 화면에 보이게 한다
}

public void init() {
// 화면 구성 넣을 부분
BorderLayout border = new BorderLayout();
this.setLayout(border);
this.add("North", lb1);
this.add("center", bt1);
this.add("South", bt2);
}

public void start() {
// Event나 Thread 처리할 부분
bt1.addActionListener(this);
// bt1에 ActionListener를 this즉 bt1을 액션 했을때 actionPerformed를 실행한다
bt2.addActionListener(this);
// bt2에 ActionListener를 this즉 bt2을 액션 했을때 actionPerformed를 실행한다
}

public void actionPerformed(ActionEvent e) {
// addActionListener를 실행했을떄 매게변수 ActionEvent를 가지고 온다
if (e.getSource() == bt1) {
// 매게변수 e의 메소드 getSource를 가져와서 bt1인지 확인한다
lb1.setText("결과표시 : 버튼1을 누르셨습니다.");
} else if (e.getSource == bt2) {
// 매게변수 e의 메소드 getSource를 가져와서 bt2인지 확인한다
lb1.setText("결과표시 : 버튼2을 누르셨습니다.");
}
}
}

Share