본문 바로가기

프로그래밍./Java

자바 그래픽관련 기초개념.(AWT, Swing) / (컨테이너, 컴포넌트)


자바 그래픽관련 기초개념.(AWT, Swing) / (컨테이너, 컴포넌트)

(AWT, Swing) / (컨테이너, 컴포넌트) 이런게 뭔소린지 전혀 모르고 매번 궁금 했었다 - -;

사실. 맨날 C언어 간단하게 코딩하고 그랬었지 그래픽으로 화면에 나오게 하는건 처음.

처음엔 뭔소린지도 잘 모르겠었고.. - -;; 일단 아는 대로 좀 적어보자면.

GUI 객체는 AWT와 스윙이 있다. 둘다 별반 차이는 없는 것 같으나.
AWT는 운영체제가 제공하는 자원을 사용한다. 무슨 소리냐.. 즉, 윈도우에서 버튼을 만들었다면
윈도우 시스템이 제공하는 모양의 버튼이 나온다. 다른 운영체제라면 다르겠지?

이게 뭐가 어떠냐? 싶었는데. 책에서 말하는 문제점은.
컴포넌트가 플랫폼에 종속적이기 때문에 실행되는 플랫폼에 따라 컴포넌트의 모습이 달라지게 된다. 라는데

운영체제마다 지원해주는 모양이 달라서, 일괄된 화면을 보여주지 못한다는 이야기 인거 같다.
리눅스, mac, 윈도우 다 화면이 다르게 보이겠지. 조금씩이겠지만. 이런게 싫다는거 같다.

Swing은 자바에서 지원해 주는거기 때문에 어디서든 동일한 모양을 나타낸다고 한다.

대충 비교해보면 Swing은 클래스 이름에 Java의 앞자를 딴 J가 붙는다.
AWT에서 button이라면 Swing에서는 Jbutton 이런식. AWT에 없는게 Swing에서 지원해주기도.

컨테이너. 컴포넌트.
컴포넌트는 일종의 버튼, 레이블 이런거 말하는 거고.
컨테이너는 이런 컴포넌트를 담을 수 있는 틀(공간) 같은 것을 이야기 한다.

컨테이너는 몇가지 종류로 나뉘는데
최상위 컨테이너  - 프레임, 다이얼로그, 애플릿 등이 해당된다.
일반적 컨테이너 - 패널, 스크롤페인 등등

일반적으로 쓴 걸 보면
가장 큰 틀. 프레임(윈도우 창) 을 만들고
그 안에 버튼이나, 레이블 등을 넣은 패널들을 넣는다.

패널에 버튼들을 넣고 그런 패널들을 프레임이 넣는다.
패널은 일종에 버튼이나 이런 컴포넌트를 모아두는 묶는 공간이라고 생각하면 된다.
나중에 화면 정렬할때 주로 쓰는 거 같음.

정렬을 할 때. 버튼들을 가로로 한줄 정렬하고
그 밑으로는 세로로 정렬하고 싶을 때. 가로로 할 것과 세로로 할 것을 각각 다른 패널에 넣고
패널마다 정렬하는 방법을 다르게 준다.



유용한 정보가 되셨다면 아래 손가락 버튼 한번 눌러주세요 ^-^