GUI
그래픽을 이용하여 사용자와 프로그램 간의 상호작용을 할 수 있도록 해주는 인터페이스
AWT
: Abstract Window Toolkit은 GUI프로그래밍을 제작하기 위해 자바에서 제공하는 라이브러리를 모아놓은 것
: 모든 GUI프로그램에 사용되는 컴포넌트 및 툴킷을 제공
: 향후에는 JFC와 같은 스윙 및 Java2D의 모태가 되는 개념
: 운영체제에 구해받지 않고 쓸 수 있도록 운영체제의 것을 그대로 사용하지 않고 공통적이고 기본적인 컴포넌트들을 추상화시켜 제공한다
Container
: 자신의 영역에 컴포넌트를 포함시키고 관리하는 역할
: 컨터에니가 다른 컨테이너를 포함할 수도 있다.
: 컴포넌트도 또한 컨테이너에 부착시키지 않으면 독자적으로 화면에 출력되 수가 없고
: 반드시 컨테이너에 부착을 시켜야만 화면에 출력이 될 수 있다.
: 컨테이너 종류에는 Frame, Window, Panel, Applet, Dialog, FileDialog, ScrollPane
Frame
: 상위클래스인 Window클래스는 타이틀 메뉴 등이 지원되지 않기때문에 일반적으로 사용하지 않고
: Frame클래스를 사용한다
: 기본적으로 경계선, 타이틀,메뉴,시스템상자(최소화, 최대화, 종료) 등의 기능을 제공한다
: 다른 윈도우에 속해있지 않은 윈도우로 최상위 레벨 윈도우라 한다.
Panel
: 컴포넌트들을 그룹별로 묶어서 처리할 때 주로 사용한다
: Frame에 컴포넌트를 직접 붙이지 않고 Panel에 그룹별로 붙이고, 다시 Panel을 Frame에 붙이는 경우가 많다
Dialog
메인 윈도우 외에 메시지를 출력하거나, 사용자로부터 데이터를 입력받을 때 주로 사용하는 컨테이너
Checkbox
사용자가 여러 종류의 옵션을 선택할 것인지의 여부를 지정할 때 사용한다.
여러 개의 체크박스를 묶어 하나의 그룹으로 만들어 그룹내에서는 하나만의 값을 유지할 수 있는 라디오 버튼 형태로도 사용할 수 있는 컴포넌트이다. 그룹으로 묶을떄에는 CheckboxGoup
TextField
한 줄 내의 텍스트를 입력받거나 편집할 수 있는 컴포넌트이다.
패스워드 setEchoChar('*')
메뉴
1. 메뉴바 객체를 생성
2. 메뉴바에 삽입할 메뉴를 생성한 후 메뉴를 메뉴바에 붙인다
3.메뉴에 붙일 메뉴아이템을 생성한 후 해당 메뉴에 붙인다
4. 윈도우에 메뉴바
LayoutManager
컨테이너는 자기 자신에 컴포넌트를 붙일 때 어디에, 어떤 방식으로 배치하여 붙일것인가를 이미 결장하고 있다
자바에서 사용하는 배치관리자는 FlowLayout, BorderLayout, GridLayout, GridBagLayout, CardLayout의 5가지가 있다
FlowLayout
수평으로 순서대로 늘어놓는 배치 기능
BorderLayout
CENTER를 기준으로 NORTH,SOUTH,LEFT,RIGHT의 공간을 나누는 배치관리자
GridLayout
격자모양과 같이 가로와 세로가 같은 크기의 비율로 나누어 각 공간에 컴포넌트를 배치할 수 있는 배치관리자
GrideBagLayout
GridLayout과 비슷하지만, 각각 다른 크기 비율로 공간에 컴포넌트를 배치할 수 있는 배치관리자
CardLayout
여러개 카드가 쌓인것처럼 컴포넌트 하나만 보여주는 배치관리자
이벤트(Event)
: 윈도우 프로그래밍에서 어떤 특정한 행동이 발생한 그 자체
이벤트소스(Event Source)
: 이벤트가 발생할 수 있는 컴포넌트
: 버튼, 체크박스, 리스트, 프레임, 마우스 등
이벤트 리스너(Event Listener)
: 이벤트 소스에서 이벤트가 발생하는지 검사하고 있다가 이벤트가 발생이 되면
실제적으로 이벤트를 처리할 수 있도록 만든 인터페이스
이벤트 핸들러(Event Handler)
: 이벤트가 발생하면 발생된 이벤트를 처리해서 결과를 낼 수 있도록 해주는것
컴포넌트 이벤트 처리 3단계
1. 이벤트 소스 결정
2. 이벤트 리스너 작성
3. 이벤트 소스와 이벤트 리스너 연결
'Java > java' 카테고리의 다른 글
네트워크 (0) | 2020.08.14 |
---|---|
스레드 (Thread) (0) | 2020.08.13 |
예외처리 (Exception) (0) | 2020.08.12 |
제네릭 (Generics) (0) | 2020.08.11 |
내부 클래스 ( Inner Class ) (0) | 2020.08.11 |