[자바]GUI 스윙 시작하기

Posted by 알 수 없는 사용자
2016. 5. 18. 16:28 Java/Java 예제

우선 개발 툴은 기존 자바와 같이 Eclipse를 사용하였습니다.

자바에서 사용할수 있는 GUI객체에는 2종류가 있는대 하나는 AWT(Abatract Windows Toolkit) 하나는 스윙(Swing)이다.

 

스윙은 AWT와 달리 컴포넌트가 자바로 작성되어 있어 어떤 플랫폼에서도 일관됨 화면을 보여줄 수 있다.

 

자 이제 스윙을 시작해보려 한다.

우선 컨테이너란?? 아래 그림과 같다.

 

GUI를 처음 작성하려면 JFame객체를 생성해야한다. 처음에는 예를 들기위하여 객체를 생성하나

다음번에는 JFrame를 상속받아서 사용할 것이다.

1
2
3
4
5
6
7
8
9
10
11
import javax.swing.JFrame;
 
public class FrameTest {
    public static void main(String[] args) {
        JFrame f = new JFrame("상단에 표시되는 글자");
        f.setSize(300200);
        f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        f.setVisible(true);
    }
}
 
cs

위와 같이 작성하면

Setsize를 이용하여 창의 크기를 설정 함

setVisible을 이용하여 보여줄것인지 설정해야한다. 이 설정을 하지않으면 창이 뜨지 않으므로

다른소스를 작성하여도 아무 창도뜨지 않기 때문에 중요하다.

setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE) 를 사용한 이유는 X버튼을 누르면

프레임은 닫히지만 프로그램은 종료되지 않아서 프로그램도 종료하려고 사용한다.

출력결과는

이제는 상속을 받아서 한번 작성하여 보면 아래와 같다.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
import javax.swing.JFrame;
 
class Frame2 extends JFrame{
    public Frame2() {
        setTitle("상단에 표시되는글자(상속이용)");
        setSize(300200);
        setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        setVisible(true);
    }
}
public class FrameTest2 {
    public static void main(String[] args) {
        new Frame2();
    }
}
cs

 

출력결과 (위에 결과랑 상속받은것을 제외하고 똑같으므로 결과도 똑같다)

이제 간단하게 버튼을 생성해보려고 한다.

버튼은 JButton클래스를 이용하여 생성할 수 있다.

버튼을 추가한 코드는 아래와 같다.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
package Itpangpang;
 
import java.awt.FlowLayout;
 
import javax.swing.JButton;
import javax.swing.JFrame;
 
class MyFrame extends JFrame{
    public MyFrame(){
        setSize(300200);//프레임 크기 설정
        setTitle("상단 표시 제목");//창 제목설정
        
        setLayout(new FlowLayout());//기본설정BoderLayout 에서 FlowLayout으로 변경
        JButton button = new JButton("버튼");
        this.add(button);
        setVisible(true);
    }
}
public class MyFrameTest {
    public static void main(String[] args) {
        MyFrame f = new MyFrame();
    }
}
 
cs

중요한점은 버튼을 추가 한 후 add(button)을 꼭 해줘야 프레임안에 들어가므로 꼭 신경써서 add해줄것!!!

setLayout(new FlowLayout());을 해준 이유는 JFrame기본 설정이 Borderlayout인대 Flowlayout으로 변경하기 위함.

자세한 내용은 다음에 Layout설명에 하도록 하려고 합니다.

출력결과는

만약 setLayout(new FlowLayout());을 하지 않았으면 기본 Borderlayout으로 설정되어 결과는 아래와 같다.

일단 스윙 시작 단계는 여기서 마무리 하고 다음시간에 이어서 해보려고 합니다.