POST

JAVA GUI객체 스윙 (예제 이용)

현재 자바에서 사용할수잇는 GUI 객체는 AWT[각주:1]와 스윙[각주:2]이다.

간다하게 설명하자면.

AWT는 윈도우 시스템에서 실행된다면 윈도우에서 제공하는 컴포넌트를 사용하게 된다.

이 때문에 실행되는 환경에 따라 컴포넌트의 모습이 달라져 일관된 화면을 제공하기 힘들고

자바 초기 버전에 제공되던 것이다.


스윙은 자바에서 컴포넌트가 작성되기에 일관된 화면을 보여주며, 현재는 스윙사용을 권장하고 있다.


일단

아래의 코드를 실행 하여 간단하게 알바보자.



import javax.swing.*;

import java.awt.*;


public class godja { // 메인 클래스

public static void main(String[] args) { // 메인 메소드

// TODO Auto-generated method stub

MyFrame f = new MyFrame();

}

}

class MyFrame extends JFrame { // JFrame을 상속받은 MyFrame클래스

/* 생성자에서 초기화후 프레임 생성(최상위 컨테이너) */

public MyFrame() { // 생성자

setSize(600, 150); // 프레임 크기 설정

setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

setTitle("Frame Test"); // 프레임 제목 설정

/* 패널 객체 생성  */

JPanel panel = new JPanel();

JPanel panelA = new JPanel();

JPanel panelB = new JPanel();

/* 패널 색상 변경 */

panel.setBackground(Color.BLUE);

panelA.setBackground(Color.CYAN);

panelB.setBackground(Color.GREEN);

/* 라벨 객체 생성, panelA에 label추가 */

JLabel label = new JLabel ("자바 피자에 오신  것을 환영 합니다. 피자의 종류를 선택하시오.");

panelA.add(label);

/* 버튼 객체 생성 */

JButton button1 = new JButton("콤보피자");

JButton button2 = new JButton("포테이토피자");

JButton button3 = new JButton("불고기피자");

/* panelB에 button1,2,3추가 */

panelB.add(button1);

panelB.add(button2);

panelB.add(button3);

/* panel에 panelA,B추가 */

panel.add(panelA);

panel.add(panelB);

/* 프레임에 panel을 추가 */

add(panel);

setVisible(true);

}

}


위의 코드를 실행하면 그림과 같이 나온다.


몇 가지 코드별 해석을 하자면 이러하다.

MyFrame f = new MyFrame(); - 프레임 객체 생성


setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); - 사용자가 닫기 버튼을 누르게 될경우 동작을 결정, 이 문장은 프로그램 종료를 의미함.

없어도 닫기 버튼을 누르면 닫치기는 하지만, 프레임만 닫치며 프로그램은 종료되지 않는다.



setVisible(true); - 사용자에게 프레임을 보여주는 역할을 한다. 이문장을 적지 않으면 프레임을 사용자가 볼 수 없다.


  1. Abatract Windows Toolkit [본문으로]
  2. Swing [본문으로]