*GUI 프로그래밍

- 텍스트 기반 운영체제가 아닌 그래픽을 이용하여 사용자와 프로그램간의

  상호작용을 할 수 있도록 해주는 인터페이스

 

- 이러한 그래픽 프로그래밍을 지원하기 위해 나온것이 AWT

 

#AWT (Abstract Window Toolkit)

- GUI 프로그래밍을 제작하기 위해 자바에서 제공하는 라이브러리를 모아놓은것

 

- 모든 GUI 프로그램에 사용되는 컴포넌트 및 툴킷을 제공하고 있으며 향후에는 JFC와 같은 스윙(swing)

  및 Java2D의 모태가 되는 개념이다.

 

- 운영체제와 응용프로그램 사이에 연결라이브러리

 

- 실행되는 운영체제에 따라 다르게 보이거나 동작방식에 차이가 있을수있다.

   이를 보완하기 위해 개발된것이 JFC (Java Foundation Classes)이다.

 

- Component : 다른 Component를 올릴 수 있는 Container를 포함한 각종 Container위에 올라갈 화면 구성

                    요소들이 포함되어 있다.

 

- Container : 창의 역할로서 한개 이상의 Container 위에 Button,TextField 같은 Component가 올라감으로서

                 화면이 구성된다.

 

- LayoutManager : Container 위에 Component들을 올릴때 자리 배치 방법

 

 

 

#AWT Frame

 

- Window 클래스의 하위 클래스로 일반적인 응용프로그램에서 윈도우를 생성하기 위해

  사용되는 클래스 다른 윈도우에 속해있지않은 윈도우로 최상위 레벨 윈도우라 한다.

 

- 상위 클래스인 Window 클래스는 타이틀,메뉴등이 지원되지 않기 때문에 일반적으로

  사용하지 않고 Frame 클래스를 사용한다.

 

- 기본적으로 경계선,타이틀,메뉴,최대화,최소화,종료 등의 기능을 제공한다.

 

- 최종적으로 화면에올릴 컴포넌트나 컨테이너를 적용한다.

 

 

#AWT Panel

 

- 실제로 구성되는 화면은 단순하지가 않는다 그래서 프레임에 올릴 때는 바로 올리지않고

  이 Panel에 올린 뒤에 프레임에 올린다.

 

- 보통은 그룹별로 묶어서 프레임에 붙이거나 다른Panel을 생성해서 자신에게 올리고 그것을 한번에

  프레임에 올리기도 한다.

 

 

#AWT Label

 

- 사각형 영역에 문자열을 표시할 때 사용하는 컴포넌트

 

- 경계선이 없고 문자열은 좌,우 중앙 정렬시킬 수 있다.

 

 

#AWT 기본 화면 구성

 

 

 

#Frame Setsize

 

 

 

 

#Frame에서 자주 사용하는 함수들

 

- setLocation (int left,int top) : 프레임의 화면상의 위치를 설정하는것

 -> 모니터 해상도를 가져오는 함수와 함께 사용하여 프레임의 위치를 설정할 때 자주 사용한다.

 

Dimension screen = Toolkit.getDefaultToolkit().getScreenSize();

 

- setResizable(true) : 프레임의 크기를 조절을 가능하게 할것인지 여부

 

- getExtendedState: 프레임의 상태를 얻어온다.

-> MAXIMZED_HORIZ : 가로최대화

-> MAXIMZED_VERT : 세로최대화

-> MAXIMZED_BOTH : 둘다최대화

 

- getState : 프레임의 상태를 얻어옴

-> NORMAL : 윈도우가 기본 상태로 있음

-> ICONIFIED : 윈도우가 아이콘화 되어있음

 

 

#AWT - Layout Manager 

 

- 화면 분할을 담당하는 레이아웃

 

- FlowLayout , GridLayout , BorderLayout , CardLayout , GridBagLayout 등이 있다.

 

 

#AWT - FlowLayout

 

- 설정한 값에 따라 컴포넌트들이 왼쪽에서 오른쪽, 오른쪽에서 왼쪽 가운데에서 양쪽등으로

  정렬이 되는 레이아웃

 

 

 

 

#AWT - BorderLayout

 

- 컨테이너를 West,East,North,South,Center 모두 5개의 영역으로 나누고 각 영역에

  하나의 컴포넌트만 배치할 수 있는 레이아웃

 

- 컨테이너의 크기가 변경되면 위치는 고정이며 크기가 변한다.

  상,하 : 가로변경

  좌,우 : 세로변경

  가운데 : 가로,세로 변경

 

- 컴포넌트를 추가할 때 위치를 의미하는 텍스트와 같이 추가한다.

 

 

 

 

#AWT - GridLayout

 

- 행과 열을 만들어 컴포넌트들을 컨테이너 위에 순서대로 올린다.

 

- 컨테이너 크기가 변경되면 컴포넌트들의 위치는 고정 , 크기는 모두 동일한 크기로 변함

 

 

 

 

#그리드 뷰를 사용하여 달력 만들기

 

- 매달마다,주의 갯수가 다르고 토요일은 파랑색 일요일은 빨간색으로 표시

- 전달은 주말색깔에 상관없이 회색으로 표시

- 글자색을 바꾸는 메소드 setForeground(Color.Red) 같은 식으로 색을 찾아서 사용

 

 

'Java > Java2' 카테고리의 다른 글

Java [자료구조]  (0) 2017.09.24
Java [예외처리,직렬화]  (0) 2017.09.18
Java [Object,Inner 클래스]  (0) 2017.09.16
Java [Gregorian Calendar,Math,Wrapper]  (0) 2017.09.14
Java [GUI 프로그램2]  (0) 2017.09.13

+ Recent posts