/*1. GUI ( Graphics User Interface )
– 자바의 GUI 구현 2가지 방법
가. AWT
: 무겁다.
: OS자원으로 화면구성.
나. Swing
: 가볍다.
: 자체적인 자원으로 화면구성.
– java.awt 패키지
– 계층구조( 상속관계 )
Object
|
Component
Container 일반 Component(Button, TextField, TextArea, CheckBox,…)
==> 반드시 Container에 얹혀서 보여진다.
│
window Dialog
│
Frame Panel(반드시 Frame에 얹혀서 보여진다.)
==> Layout 관련 클래스 : 컴포넌트의 위치 및 크기를 관리
– BorderLayout(*)
==> Frame의 기본Layout
==> 5개의 구역으로 나눈다.
– FlowLayout(*)
==> Panel의 기본Layout
– CardLayout
– GridBagLayout
2. 이벤트(Event) 처리
: 이벤트? ==> 특정 컴포넌트에서 발생하는 액션.(마우스클릭,…)
: 이벤트 처리(event Handling)
==> 이벤트가 발생했을때 특정 동작을 수행시키는 구현
: 구현 메커니즘
버튼——–(클릭)——->hello 출력
가. 이벤트 소스
: 이벤트가 발생한 컴포넌트
: 버튼 (Button b3)
나. 리스너(Listener : 청취자) : 이벤트 발생여부 감시
: 인터페이스로 제공
: java.awt.event 패키지
: 인터페이스를 구현하는 클래스 작성(이벤트 처리 담당 클래스)
==> 이벤트 핸들러(Event Handler)
==> 인터페이스의 추상메소드를 반드시 구현
다. 연결
: 이벤트 소스와 핸들러 연결
: addXXXListener(이벤트 핸들러);
* 이벤트 정보
=> e.getSource() : 위치값 비교
=> e.getActionCommand() : 이름 비교
* 이벤트 처리하는 4가지 방법
1. 화면구성클래스 + 다른 클래스로 구현
2. 화면구성클래스(이벤트처리까지 구현)
3. Inner 클래스 (중첩클래스)
==> outter 클래스의 멤버(변수,메소드)처럼 동작
==> outter 클래스를 먼저 생성하고 inner 사용가능하다.. (외부클래스)
==> outter 클래서의 private도 사용 가능하다.
==> 다른 클래스에서는 사용 안하고 특정 클래스만 사용할 때. (*)
==> static 키워드 가능(Inner 기능 포기)
(outter 클래스 이름으로 접근 가능)
class Outer{
private int num;
class Inner{
num=3;
}inner calss end
static class Inner2{
// 형태는 inner이나 outter와 별개로 동작하여
// private int num에 접근 불가하다.
// 접근 방법은 outer.inner2 처럼 접근한다.(외부에서 outter생성 안해도 됨)
}inner class end
}//outter class end
4. 익명 클래스(*) – anonymous class
: 이벤트 소스, 인터페이스, 클래스(x), 연결
* */