이벤트 - 구동 프로그래밍
마우스 버튼 클릭, 마우스 이동 , 키보드 입력 등등과 같은 이벤트에 응답하는 형태로 작성하는 프로그래밍
이벤트 발생 (클릭)!
클릭이 발생하기를 기다린다 - 클릭되면 일어날 일 작성
컴포넌트 - 버튼
이벤트 발생
이벤트 리스너 - 이벤트가 발생하기를 기다린다
이벤트 처리 과정
1.이벤트를 발생하는 컴포넌트를 생성
2.이벤트 리스너 클래스를 작성한다
3.이벤트 리스너를 컴포넌트에 등록한다
이벤트 리스너
발생된 이벤트에 반응해서 이벤트를 처리하는 객체
예제
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 |
import java.awt.FlowLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JTextField;
public class ThreadGui extends JFrame{
JLabel label;
public ThreadGui() {
setSize(500,500);
setVisible(true);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
JButton button1 = new JButton("button1");
button1.addActionListener(new buttonThread());
label = new JLabel("");
JTextField textfield = new JTextField(10);
JPanel panel = new JPanel(new FlowLayout());
panel.add(label);//Jlabel을 추가한다
panel.add(textfield);//JtextField를 추가한다
panel.add(button1);//button을 추가한다
this.add(panel);//panel을 화면에
}
class buttonThread extends Thread implements ActionListener{
@Override
public void run() {//쓰레드의 동작을 정의한다
int a=10;
try {
while (a>0) {
label.setText(""+a);//10부터 1씩 줄어들며 출력한다
a--;
Thread.sleep(1000);
}
} catch (Exception e) {
}
}
@Override
public void actionPerformed(ActionEvent e) {//버튼이 클릭되면 쓰레드 실행
Thread t1 = new Thread(new buttonThread());
t1.start();
}
}
public static void main(String[] args) {
new ThreadGui();
}
} |
cs |
'Java 강의' 카테고리의 다른 글
Java로 웹 크롤링 하기 (0) | 2017.11.03 |
---|---|
자바 이벤트 객체 (0) | 2017.11.01 |
객체 직렬화 하고 다시 가져오기 / java Serializable (0) | 2017.10.27 |
자바 스레드 레이스 컨디션 예제 / java thread race condition example (0) | 2017.10.25 |
내부 클래스 익명 클래스 (0) | 2017.10.18 |
댓글