자바 버튼 만들기 - jaba beoteun mandeulgi


안녕하세요.

지난 시간에는 프레임을 만들어보았습니다.

이번 시간에는 프레임에다가 버튼을 추가시켜보도록 하겠습니다.

코드를 보시죠.

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

// Study01.java

package study;

import javax.swing.JButton;

import javax.swing.JFrame;

public class Study01 {

    public static void main(String[] args) {

        // 프레임 생성

        JFrame frm = new JFrame("슬라임 퇴치하기");

        // 프레임 크기 설정

        frm.setSize(350300);

        // 프레임을 화면 가운데에 배치

        frm.setLocationRelativeTo(null);

        // 프레임을 닫았을 때 메모리에서 제거되도록 설정

        frm.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

        // ★ 버튼 생성

        JButton btn1 = new JButton("슬라삐");

        // ★ 프레임에다가 버튼 추가

        frm.add(btn1);

        // 프레임이 보이도록 설정

        frm.setVisible(true);

    }

}

cs

주석에 별표가 붙어있는 부분이 새로 추가한 부분입니다.

- 25행 : 버튼 생성은 프레임 생성과 동일한 방식입니다. JButton에 빨간줄이 그인다면 '컨트롤+시프트+오'

- 28행 : 버튼을 생성만 했다고 바로 보이지는 않습니다. 프레임에다가 추가를 해줘야 되죠. add함수는 추가대상을 인수로 받아서 추가해주는 역할을 합니다.

- 31행 : 프레임이 보이도록 설정하는 코드는 맨 마지막에 와야 된다는 점 명심하세요~

자, 실행해봅시다.

자바 버튼 만들기 - jaba beoteun mandeulgi

ㅎㅎㅎ 버튼은 만들어졌는데 창을 가득 메워버렸군요. 앞으로 추가할 요소들이 많은데 이녀석이 공간을 다 차지해버리면 난감한데요 ㅎㅎ

이런 사태가 벌어진 원인은 프레임에다가 '레이아웃'을 설정하지 않아서입니다.

다음 시간에는 레이아웃에 대해서 배워보겠습니다.

감사합니다.



안녕하세요.

지난시간에는 구체적으로 치수를 기입하면서 프레임을 구상해 봤습니다.

이런 모습이었죠.

이제 구상한대로 버튼을 배치해보겠는데요, 이때 알아야 될 함수가 setBounds입니다. 사용방법은 아래와 같습니다.

setBounds(가로위치, 세로위치, 가로길이, 세로길이);

위치를 결정하는건 해당 구성요소의 왼쪽위 꼭지점의 좌표인데요, 왼쪽 버튼을 예로 들면 30, 170이 되겠죠. 그리고 버튼의 가로길이는 122고 세로길이는 30이니까 아래처럼 코딩하면 되겠습니다.

btn1.setBounds(30, 170, 122, 30);

오른쪽 버튼의 경우에는 가로위치값만 다르겠네요. 30+122+30 해서 182가 되겠습니다.

코드와 결과화면은 아래와 같습니다.

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

// Study01.java

package study;

import javax.swing.JButton;

import javax.swing.JFrame;

public class Study01 {

public static void main(String[] args) {

// 프레임 생성

JFrame frm = new JFrame("슬라임 퇴치하기");

// 프레임 크기 설정

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);

// 프레임이 보이도록 설정

frm.setVisible(true);

}

}

cs

자바 버튼 만들기 - jaba beoteun mandeulgi

원하던대로 잘 나오네요^^

아직은 버튼을 눌러도 아무런 반응이 없는데 다음시간에는 버튼이 동작하도록 코딩을 해보겠습니다.

감사합니다.