본문 바로가기
JAVA/개념정리

[JAVA] AWT와 Swing

by JJH0100 2022. 10. 13.
728x90
반응형

java.awt.Frame

 

extends Frame을 작성하면 java.awt.Frame을 임포트 시킬 수 있다. 여기서 awt는 Abstract Window Toolkit이라는 뜻이다.

 

자바의 본 플랫폼에 의존하는 윈도, 그래픽스, 사용자 인터페이스 위젯 툴킷으로, 자바 프로그램을 위한 그래픽 사용자 인터페이스(GUI)를 제공한다.

package SwingEx;

import java.awt.Frame;

public class MyFrame extends Frame{
	public static void main(String[] args) {
		Frame f = new Frame("처음 만드는 자바 프로그램"); //제목설정
		f.setSize(300, 400); //크기설정
		f.setResizable(false); //크기 조절 불가 설정
		f.setVisible(true); //창화면 보이기
	}
}

자바에서 제공하는 Frame를 이용해 만든 크기 조절 불가능한 가로 300x 세로400 크기의 창

그런데 저 창의 닫기버튼을 눌러보면 닫히지 않는다. 이벤트를 아직 설정해주지 않았기 때문이다. AWT는 외에도 표나 트리등의 복잡한 컴포넌트를 사용하기 어렵다는 단점이 있다. 이런 불편한 점들을 보완하기 위해 사용되는 것이 Swing의 JFrame이다.

 

 

 

Swing

스윙(Swing)은 자바에서 GUI(Graphic User Interface)를 구현하기 위해 JDK에서 기본적으로 제공하는 개발 툴킷으로 선 마이크로시스템즈의 자바 기반 클래스의 일부이다.

 

우선은 Swing에서 제공하는 JFrame을 사용해보자

package SwingEx;

import javax.swing.JFrame; //swing에서 제공하는 java프레임

public class MyFrame extends JFrame{
	public static void main(String[] args) {
		JFrame f = new JFrame("처음 만드는 자바 프로그램"); //제목설정
		f.setSize(300, 400); //크기설정
		f.setResizable(false); //크기 조절 불가 설정
		f.setDefaultCloseOperation(EXIT_ON_CLOSE); //닫기 버튼 기능 : J프레임에서 제공
		f.setVisible(true); //창화면 보이기
	}
}

실행시키면 이런 창이 생성된다.

swing에서 제공하는  JFrame으로 만든 크기 조절 불가능한 가로 300x 세로400 크기의 창

아까랑은 창의 형태가 조금 다른데 Swing에서 제공하는 창이기 때문이다.

 

 

하지만 위의 코드보다는 아래와 같이 사용하는 것이 좋다. 

package SwingEx;

import javax.swing.JFrame; //swing에서 제공하는 java프레임

public class MyFrame extends JFrame{
	public MyFrame (){
		JFrame f = new JFrame("처음 만드는 자바 프로그램"); //제목설정
		f.setSize(300, 400); //크기설정
		f.setResizable(false); //크기 조절 불가 설정
		f.setDefaultCloseOperation(EXIT_ON_CLOSE); //닫기 버튼 기능 : J프레임에서 제공
		f.setVisible(true); //창화면 보이기
	}
	public static void main(String[] args) {
		new MyFrame();
	}
}

왜? Main은 짧을 수록 좋으니까.

 

 

 

AWT와 Swing

Swing과 AWT를 둘 다 사용할 것이다. 왜냐하면, AWT에서 제공하는 화면배치 기능들이 필요하기 때문.

package SwingEx;

import java.awt.*; //awt all import
import javax.swing.*; //swing all import

public class MyFrame2 extends JFrame{
	public MyFrame2 (){
		f.setSize(300, 400); //크기설정
		f.setDefaultCloseOperation(EXIT_ON_CLOSE); //닫기 버튼 기능 : J프레임에서 제공
		f.setVisible(true); //창화면 보이기
	}
	public static void main(String[] args) {
		new MyFrame2();
	}
}

import java.awt.*; 로 쓰는 것은 awt all을 불러오겠다는 뜻이다.[JAVA] AWT와 Swing

728x90
반응형

'JAVA > 개념정리' 카테고리의 다른 글

[JAVA] Swing : 외부선언, 내부선언  (0) 2022.10.13
[JAVA] Swing의 JFrame  (0) 2022.10.13
[JAVA] 추상(abstract) 클래스와 오버라이딩  (0) 2022.10.13
[JAVA] 추상화 abstract  (0) 2022.10.13
[JAVA] 다형성  (0) 2022.10.13

댓글