본문 바로가기

JAVA/JAVA

GUI 에 대한 설명

반응형

** GUI에 대하여


1) 자바는 GUI를 제공하는 패키지명 java.awt


2) GUI 가 되려면 창을 만들어야 하는데 Frame 을 사용함


3) 화면에 어떤 구성요소를 배치하기 위하여 '배치관리자'를 사용


4) 배치관리자

: 자바의 GUI 프로그램에 화면의 구성요소들을 원하는 곳에 배치(놓는다)하기 위한 것들


1) FlowLayout

: 화면의 구성요소들을 물 흐르듯이 왼쪽에서 오른쪽으로 or 위에서 아래로 순차적으로 배치하는 방식

2) GridLayout

: 화면을 행,열로 분할하여 배치하는 방식

rows 의 기준을 우선시 한다.

컴포넌트의 수가 화면분할의 수 보다 적거나, 크다면 행의 수는 유지하되 열의 수는 알아서 조절한다.

3) BorderLayout

: 화면을 위,아래,좌,우,가운데로 분할하여 배치하는 방식


5) 배치관리자 종류

FlowLayout

GridLayout

BorderLayout

CardLayout

GridBagLayout


배치관리자를 사용하지 않을 수도 있다.

setLayout(null);

하나하나 각각의 컴포넌트의 위치를 잡아 줘야 한다.


예)

컴포넌트명.setBounds(x, y, 가로길이, 세로길이)


** 하나의 LayoutManager 만으로는 복잡한 화면을 표현하기에는 부적합하다.

이를 위해서는 SubContainer 역할을 하는 Panel을 사용한다.



6) Sub Container(Panel)

: 복잡한 화면구성을 위해서는 하나의 LayoutManager만으로는 부적합하고 

이를 위해서는 서브 컨테이너(= 컨테이너 안에 컨테이너 들어가는것) 역할을 하는 Panel을 이용한다.


7) Frame 과 Panel 의 디폴트값

Frame은 기본레이아웃을 설정하지 않아도 기본레이아웃이 있다. 그것이 'BorderLayout' 으로 잡혀있음

Panel은 기본레이아웃을 설정하지 않아도 'FlowLayout' 으로 잡혀있음


즉,

Frame 의 디폴트 값 : BorderLayout

Panel 의 디폴트 값 : FlowLayout




** 이벤트처리방법

1. Frame 자신이 이벤트처리 담당자


2. 이벤트 처리를 위한 별도의 클래스를 정의 하는 방법

: 화면구성요소에 접근하기가 애매하다. 관계를 맺어 줘야 하기 때문이다.

관계 맺어주는 방법 =>생성시에 나를 던져준다?


3. 이름없는 inner 클래스로 만드는 방법

: inner 클래스는 outter 클래스의 멤버로 인식하므로 

화면구성요소에 접근하기가 용이하다.


반응형