안녕하세요.


이번 시간에는 버튼을 눌렀을때 라벨의 글자가 바뀌도록 구현해보겠습니다. 이 때 필요한 함수와 사용방법은 아래와 같습니다.



버튼객체.addActionListener(event -> {

버튼이 눌러지면 실행할 내용


});



addActionListener는 의역하면 '행동 감지기 추가'입니다. 버튼을 클릭하는 행동을 감지하겠다는거죠. 잘 보시면 함수의 인수가 여러줄에 걸쳐 입력이 돼있는 모습입니다. 소괄호속에 중괄호가 있는 특이한 형태네요. addActionListener();에서 소괄호 속이 비대해져 있는 형태라고 보시면 닫는 소괄호와 세미콜론도 이해가 되실 것 같네요.


event도 있고 ->(화살표)도 있고 갑자기 난이도가 너무 높아졌다고 생각하실지 모르겠는데 그냥 수학공식처럼 받아들이시면 되겠습니다. 외워두셔도 좋고 어디다 복사해 놓으셔도 좋습니다.


자 그럼 실제로 적용해봅시다.



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
// Study01.java
 
package study;
 
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
 
public class Study01 {
 
    public static void main(String[] args) {
 
        // 프레임 생성
        JFrame frm = new JFrame();
 
        // 프레임 제목 설정
        frm.setTitle("슬라임 퇴치하기");
 
        // 프레임 크기 설정
        frm.setSize(350300);
 
        // 프레임을 화면 가운데에 배치
        frm.setLocationRelativeTo(null);
 
        // 프레임을 닫았을 때 메모리에서 제거되도록 설정
        frm.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
 
        // 레이아웃 설정
        frm.getContentPane().setLayout(null);
 
        // 버튼 생성
        JButton btn1 = new JButton("슬라삐");
        JButton btn2 = new JButton("슬라디");
 
        // 버튼 위치와 크기 설정
        btn1.setBounds(3017012230);
        btn2.setBounds(18217012230);
 
        // 프레임에다가 버튼 추가
        frm.getContentPane().add(btn1);
        frm.getContentPane().add(btn2);
 
        // 라벨 설정
        JLabel lbl = new JLabel();
        lbl.setBounds(3020027450);
        lbl.setText("게임을 시작합니다");
        lbl.setHorizontalAlignment(JLabel.CENTER); // 수평 가운데 정렬
        frm.getContentPane().add(lbl);
 
        // ★ 버튼이 눌렸을때
        btn1.addActionListener(event -> {
            lbl.setText("나는 슬라삐");
        });
        
        btn2.addActionListener(event -> {
            lbl.setText("나는 슬라디");
        });
        
        // 프레임이 보이도록 설정
        frm.setVisible(true);
 
    }
 
}
 
cs




잘되죠? ㅎㅎ



다음 시간에는 버튼 위에다가 슬라임 그림을 넣어보겠습니다.


감사합니다.

+ Recent posts