Day15

2020. 10. 16. 20:36교육과정/KOSMO

키워드 : 이미지 변경 / RolloverIcon, PressedIcon / setMnemonic (니모닉) / setToolTipText (툴팁) / GUI 동작 이벤트 / 인터페이스와 상속 / 이벤트 핸들러 / 포커스 이벤트 / 윈도우 이벤트 / 이벤트 생성시 분기점 만들기 / 이너클래스 / 이벤트 생성 스크립트의 다양한 작성법

 

****

 

 

1. 버튼에 이미지 삽입 + 클릭했을 때 이미지 변경

   ▶ new ImageIcon( ) ;

   ▶ setVerticalTextPosition( ) ;

   ▶ setHorizontalTextPosition( ) ;

   ▶ setRolloverIcon( ) ;

   ▶ setPressedIcon( ) ;

   ▶ setMnemonic( '   ' ) ;

   ▶ setToolTipTest( "    " ) ;

 

 

 

2. GUI 동작 - 이벤트 

   (1) 이벤트 핸들러 (이벤트 구현할 클래스)
     - 이벤트 관련 인터페이스를 상속
     - 메소드를 오버라이딩
   (2) 이벤트 핸들러를 객체 생성
   (3) 화면에서 이벤트가 발생할 컴포넌트와 2번을 연결
# 이벤트 종류
  - ActionEvent (****)
      - 버튼 클릭
      - 메뉴 클릭
      - 텍스트필드에서 엔터
  - KeyEvent
  - MouseEvent
  - FocusEvent
  - WindowEvent

 

 

3. 인터페이스 전체 상속과 부분상속을 위한 클래스 상속시 주의사항

interface FocusListener {                                      >> 상위 인터페이스
    void aaa( ) ;
    void bbb( ) ;
}

class FocusAdapter implements FocusListener {        >> 인터페이스 상속 : 함수를 모두 완성시켜야 한다. 
   public void aaa( ) {                                         
   }
   public void bbb( ) {
   }
}

class FocusHdlr extends FocusAdapter {                  >> 하위클래스 상속 : 필요한 함수만 오버라이딩 가능하다.
   public void aaa( ) {                               -> 정상 오버라이딩
   }

   public void bbbbbb( ) {                         -> 인지X 오버라이딩X  ----> 오탈자를 찾아내지 못하기 때문에 주의 필요
   }
}

 

 

 

4. 이벤트핸들러

actionPerformed( ) { } 

JOptionPane.showMessageDialog( , ) ;

JOptionPane.showConfirmDialog( , ) ;

JOptionPane.OK_OPTION -------------- System.exit(0);

ActionListener / ActionAdapter

FocusListener / FocusAdapter

WindowListener / WindowAdapter

 

 

5. 이벤트 생성시 분기점 만들기 - OK버튼과 CANCEL버튼

 : get으로 리턴하는 타입은 모두 Object 자료형을 갖게 된다. 필요에 따라서 적절히 형 변환 해주어야 한다. 

getSource( ) ;

 

이너클래스에 대한 class 파일이 자동으로 생성된다. 

 

 

6. 이벤트 처리시 객체 생성의 또 다른 방법

 

 

 

7. 이벤트를 위한 이너클래스 생성 자체를 하지 않는 방법

    - 클래스에서 인터페이스를 상속받는다.

 

 

 

8. 

 

 

 

 

 

 

 

 

반응형

'교육과정 > KOSMO' 카테고리의 다른 글

Day17  (0) 2020.10.20
Day16  (0) 2020.10.19
Day14  (0) 2020.10.15
Day13  (0) 2020.10.14
Day12  (0) 2020.10.13