GUI

예숑·2023년 12월 3일
0

JAVA - GUI

목록 보기
1/8
post-thumbnail

⭐️GUI(Graphical User Interface)

사용자가 편리하게 입출력할 수 있도록 그래픽으로 화면을 구성하고, 마우스나 키보드로 입력받을 수 있도록 지원하는 사용자 인터페이스

<GUI 의 사용목적>

1) ’객체지향’ 을 좀 더 직관적으로 이해하기 위해
2) 앞으로 배울 기술들의 기반이 되어서
3) ‘웹’도 GUI를 기반으로 하기에
4) 안드로이드 도 GUI를 기반으로 한다.
5) MVC 구조를 간접적으로 맛 볼수 있다.

<GUI에는 무엇이 있는가?>
→ GUI 에는 AWT, Swing, Java Fx 가 있다.

1)AWT(패키지 : java.awt)
→ 태초의 존재
장점 : 만들기 쉽다.
단점 : 화면 구성 요소가 적어서 구현하는 데 제한이 있다.

2)Swing(패키지 : javax.swing)
→ 패키지에서 x 는 확장이라는 의미
→AWT 를 보완해서 나왔으며, AWT를 상속받았다.
→swing을 상속받은 클래스 앞에 J 가 붙는다.
Ex) JFrame, JPanel, JLabel 등등

💙Component(컴포넌트)

Container 에 포함되어야 보여진다.(가시성을 가진다.)
독립적으로 가시성을 가지지 않는다.
(base-container에 부착되어야 가시성을 가질수 있다.)
→다른 Component 를 포함할 수 없다.

최상위 Container : 다른 컨테이너에 포함되지 않고도 출력되는독립적 존재 가능 컨테이너(스스로 화면에 출력가능) ⇒ JFrame, JDialog, JApplet

💙Container(컨테이너)

→Component를 상속받는다.
→다른 구성요소들을 포함할 수 있는 객체(다른 Component 를 포함할 수 있다.)
→다른 Container 에 포함될 수도 있다.
→Container는 직접 배치할 수 없다.
layout- manager를 이용하여 배치한다.

💜layout - manager

<layout - manager에 대해>
→Container 를 어떻게 배치할 것인지를 결정해준다.
( 배치 : 크기와 위치를 얘기한다.)
모든 Container 는 하나의 layout- manager만을 가진다.

💙1) BorderLayout

1) Container 를 5개 영역으로 나누어 배치한다.
(north, west, east, south, center)
2) 각 영역별로 Component가 1개씩만 배치 가능하다.
3) 영역별로 크기의 변화에 다르게 영향을 받는다.
(center 는 모두 영향을 받는다.)
→ 횡: north, south, center
→ 종: west, east, center
예를 들어 한 영역을 없애면 다른 영역이 그 영역을 차지한다.
4) 배치 시 해당 영역을 가득 채우는 크기로 배치한다.
**Base Container 는 기본적으로 BorderLayout을 가진다.

💙2)FlowLayout

1)Component 의 크기는 보여지는 내용의 양 (글자수, 그림크기)에 따라 결정난다.
2) Container 의 크기 변화는 배치된  Component에 영향을 주지 않는다!!
3) 기본적으로 중간 정렬이 되어있다.
→왼쪽, 오른쪽, 중간 정렬이 있다.
(왼쪽에서 오른쪽으로 채우고 다 채우면 아래로 내려가서 중간 정렬로 채운다.)
FlowLayout.CENTER
FlowLayout.LEFT
FlowLayout.RIGHT

💙3) GridLayout

1)배치되는 Component의 크기는 모두 같다.
2)줄 과 칸으로 영역을 나눈다.
3)영역별로 Component 1개씩만 배치 가능하다.
4)배치되는 Component는 해당 영역을 가득 채우는 크기로 크기가 결정난다.
5)Container 크기변화에 배치된 모든 Component가 영향을 받는다.
6)칸의 병합가능은 없고, 배치할 때 건너뛸 수 없다.
(차례대로 하나씩 채운다)
7) 각 영역별 간격(가로,세로)를 설정할 수 있다.
→GridLayout(세로, 가로, 가로간격, 세로간격);

setLayout( )을 통해서 기존 layout- manager 에서 다른 layout- manager으로 변환시킬 수 있다.

0개의 댓글