moyaiori 2015. 7. 23. 09:05

시작!


내일 실기 프로젝트 시험!!


---------------------- 오전시작!!

하나의 컴포넌트에 알아서 이벤트가 막 생성된다.

개발자가 따로 지정해주지않아도 알아서 생성됨. 하지만 개발자가 따로 처리해주지않아서 동작하지 않는다.

왠만한건 ActionEvent에서 처리해준다.

로우하게 저수준에서 구체적으로, 키보드, 텍스트 아이템, 등등은 따로 처리해줄 필요가 있을때가 있다.

다중구현을 통하여 하나의 클래스에서 모든 이벤트를 처리해줄 수 있다.



1. 화면 - 이벤트처리 <-- 클래스가 분리되어있다. 다양한 화면이있을경우

장점 : 이벤트처리클래스를 다른 UI에서도 사용할 수 있다.

단점 : 따로 클래스를 가져와서 사용하기때문에 번거로울수있다.


2. 두가지를 한번에 한다

상속과 추상메소드를 동시에 UI에서 구현할수도있다.  <-- 화면이 간단한 경우


3. 내부클래스

아직 대기!!


AWT 이벤트 처리 절차!!

1. 이벤트 소스(타겟)결정

2. 처리 이벤트 결정

3. 이벤트 리스터(핸들러) 구현

4. 이벤트 소스에 이벤트 리스터 연결(등록)


오늘부터 화면 구현 실습 해보기 시작


어댑터 클래스 : 인터페이스의 구현되지않은 메소드들만 있는 클래스, 이런 클래스를 상속받아서 구현한다, 추상메소드가 1개만 있는것은 어댑터 클래스가 없다. 대표적으로 1개인것은 ActionEvent

 

다른 클래스에 컴포넌트를 보내주기위해 this를 보내준다.

서로 다른 클래스와 상호작용하기위해 this로 데이터를 보내준다.

생성자를 통해서 this로 객체를 가져와서 이벤트 클래스에서 처리해준다.

하지만 원래 클래스의 속성을 다른 클래스에서 조작하는것은 좋지않은 프로그래밍이다. (캡슐화)



system.exit(0); 을 바로 사용하면 나머지 그래픽 리소스들을 처리하지않고 프로그래밍 종료되기때문에

setVisible(fasle);

dispose();

를 호출해줘야한다.


- 내부 클래스를 이용한 이벤트 처리

내부클래스 에서는 자신을 포함하고 있는 외부클래스의 인스턴스 변수와 인스턴스 메소드에 대한 접근이 가능하다.

어댑터 클래스 상속을 통한 이벤트 처리의 단점(다중상속 불가)을 해결할 수 있다.

내부클래스를 이벤트 리스터로 사용할 수 있다.

다른 클래스에서 재사용이 가능하다. 위치적으로만 내부클래스로 존재하지만 다른 클래스에서 접근이 가능하다.


1(외부클래스구현)번과 2번(내부구현) 장점을 가진다.

java 2때 이벤트 리스너를 구현하기위해 내부클래스가 추가되었다. 이벤트 리스너이외에도 다양한곳에서 사용된다.


- 존재 방식에 따른 분류

맴버 내부 클래스 : 외부 클래스의 인스턴스 변수나 인스턴스메소드를 사용할 수 있다.

이름있는 지역 내부 클래스 : 메소드안에 클래스를 만들 수 있다. 지역 내부 클래스, 메소드 소멸과 동시에 사라진다. 하지만 외부에서 클래스 내부의 인스턴스 변수에 접근할 수 있다. 이벤트 처리는 특정 타이밍에만 존재하기때문에 사용한다.

이름없는 지역 내부 클래스 : 단 한번만 사용되고 말 경우에는 굳이 클래스의 이름을 저장할 필요가 없다.


다른 클래스에서 내부 클래스를 접근할때의 방식

ChatFrame.ExitHandler eventHandler = new ChatFrame().new ExitHandler();


이름 어뵤는 지역 내부 클래스는 외부에서 접근이 불가능하다.


---------- 오후 시작!!

이름없는 지역 맴버 클래스 구현

키보드, 마우스, 텍스트필드 등... 다양한 이벤트 처리


내부 클래스에는 다른 변수나 메서드처럼 static을 붙여줄 수 있다.

외부에서 바로 접근이 가능하다.


new XXX(). new YYY(); <- 일반적인 내부 클래스의 접근법

new XXX().YYY(); <- statc 내부 클래스의 접근법


- 복잡한 레이아웃 관리자, 배치관리자


배치관리자 - GridBagLayout 그리드를 기반으로 컴포넌트의 위치와 크기를 자유롭게 지정할 수 있는 장점이 있는 배치 관리자이다. 다양한 속성과 가장 복잡한 형태를 하고 있다.



예행연습 - 화면실습 구성만 해보기


프레임자체는 보더로 시작한다.

패널의 레이아웃을 그리드백으로 준다.



예행 연습 - 내일 계좌 관리 페이지 만들기