** 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 클래스의 멤버로 인식하므로
화면구성요소에 접근하기가 용이하다.
'JAVA > JAVA' 카테고리의 다른 글
네트워크 프로그래밍의 개념과 TCP방식과 UDP 방식 (0) | 2016.06.18 |
---|---|
GUI의 java.awt 와 javax.swing 에 설명 및 사용법 차이 (0) | 2016.06.18 |
CUI 와 GUI 개념 차이 (0) | 2016.06.18 |
쓰레드 사이의 통신 (0) | 2016.06.18 |
임계영역이란? (0) | 2016.06.18 |