JavaTM Platform
Standard Ed. 6

javax.swing.event
클래스 EventListenerList

java.lang.Object 
  상위를 확장 javax.swing.event.EventListenerList
모든 구현된 인터페이스:
Serializable


public class EventListenerList
extends Object
implements Serializable

EventListener 의 리스트를 포함하는 클래스입니다. 1 개의 인스턴스를 사용해, 이 리스트를 사용하고 있는 인스턴스의 (모든 타입의) 모든 청취자를 포함할 수 있습니다. 타입 보증된 API (JavaBeans 스펙에의 준거가 바람직하다) 및 이벤트 통지 메소드를 리스트내의 적절한 EventListener 에 송신하는 메소드의 제공은, EventListenerList 를 사용하고 있는 클래스가 실시합니다. 이 클래스가 제공하는 주된 이점은, 청취자가 없는 경우에는 비교적 싸게 들어, 이벤트 청취자의 리스트를 1 개의 장소에서 직렬화해, 올바르게 사용했을 경우에는 어느 정도의 multi-thread에 대한 안전성이 제공되는 것입니다. 사용예:예를 들어, FooEvent 를 송출하는 클래스를 정의해, 그 클래스의 사용자가 FooListener 를 등록해, FooEvent 가 발생하면(자) 통지를 받을 수가 있도록(듯이) 하는 경우는, 클래스의 정의에 다음의 코드를 추가할 필요가 있습니다.

 EventListenerList listenerList = new EventListenerList();
 FooEvent fooEvent = null;

 public void addFooListener(FooListener l) {
     listenerList.add(FooListener.class, l);
 }

 public void removeFooListener(FooListener l) {
     listenerList.remove(FooListener.class, l);
 }


 // Notify all listeners that have registered interest for
 // notification on this event type.The event instance 
 // is lazily created using the parameters passed into 
 // the fire method.

 protected void fireFooXXX() {
     // Guaranteed to return a non-null array
     Object[] listeners = listenerList.getListenerList();
     // Process the listeners last to first, notifying
     // those that are interested in this event
     for (int i = listeners.length-2; i>=0; i-=2) {
         if (listeners[i]==FooListener.class) {
             // Lazily create the event:
             if (fooEvent == null)
                 fooEvent = new FooEvent(this);
             ((FooListener) listeners[i+1]). fooXXX(fooEvent);
         }
     }
 }
 
foo 는 적절한 이름에, fireFooXxx 는 적절한 메소드명에 각각 변경할 필요가 있습니다. FooListener 인터페이스의 통지 메소드 마다 기동 메소드가 필요합니다.

경고: 이 클래스의 직렬화 된 객체는, 향후의 Swing 릴리스와 호환은 아니게 될 예정입니다. 현재의 직렬화의 지원는, 단기간의 운용이나, 같은 버젼의 Swing 를 실행하는 어플리케이션간의 RMI 에 적절하고 있습니다. JDK Version 1.4 이후, 모든 JavaBeans 의 장기간의 운용 지원는,java.beans 패키지에 추가되고 있습니다. 자세한 것은,XMLEncoder 를 참조해 주세요.


필드의 개요
protected  Object [] listenerList
           
 
생성자 의 개요
EventListenerList ()
           
 
메소드의 개요
<T extends EventListener >
void
add (Class <T> t, T l)
          지정된 형태의 청취자로서 청취자를 추가합니다.
 int getListenerCount ()
          이 청취자 리스트의 청취자의 총수를 돌려줍니다.
 int getListenerCount (Class <? > t)
          이 청취자 리스트의, 지정된 형태의 청취자의 총수를 돌려줍니다.
 Object [] getListenerList ()
          이벤트 청취자의 리스트를, 청취자와 청취자 타입의 페어의 배열로서 돌려줍니다.
<T extends EventListener >
T[]
getListeners (Class <T> t)
          지정된 형태의 모든 청취자의 배열을 돌려줍니다.
<T extends EventListener >
void
remove (Class <T> t, T l)
          지정된 형태의 청취자로서 청취자를 삭제합니다.
 String toString ()
          EventListenerList 의 캐릭터 라인 표현을 돌려줍니다.
 
클래스 java.lang. Object 로부터 상속된 메소드
clone , equals , finalize , getClass , hashCode , notify , notifyAll , wait , wait , wait
 

필드의 상세

listenerList

protected transient Object [] listenerList
생성자 의 상세

EventListenerList

public EventListenerList()
메소드의 상세

getListenerList

public Object [] getListenerList()
이벤트 청취자의 리스트를, 청취자와 청취자 타입의 페어의 배열로서 돌려줍니다. 퍼포먼스 향상을 위해, 이 구현은 청취자 데이터가 내부에 포함되고 있는 실제의 데이터 구조체를 돌려줍니다. 이 메소드는, null 이외의 배열을 돌려주는 것이 보증되고 있으므로, 기동 메소드에서의 null 의 체크는 필요 없습니다. 현재 청취자가 없는 경우는, Object 의 길이가 0 의 배열이 돌려주어집니다. 경고:이 배열에 포함되고 있는 데이터의 변경을 행하지 말아 주세요. 그러한 조작이 필요한 경우는, 배열 그 자체는 아니고, 반환된 배열의 카피에 대해서 가 주세요.


getListeners

public <T extends EventListener > T[] getListeners(Class <T> t)
지정된 형태의 모든 청취자의 배열을 돌려줍니다.

반환값:
지정된 형태의 모든 청취자
예외:
ClassCastException - 지정된 클래스가 EventListener 에 할당할 수 없는 경우
도입된 버젼:
1.3

getListenerCount

public int getListenerCount()
이 청취자 리스트의 청취자의 총수를 돌려줍니다.


getListenerCount

public int getListenerCount(Class <? > t)
이 청취자 리스트의, 지정된 형태의 청취자의 총수를 돌려줍니다.


add

public <T extends EventListener > void add(Class <T> t,
                                          T l)
지정된 형태의 청취자로서 청취자를 추가합니다.

파라미터:
t - 추가되는 청취자의 형태
l - 추가되는 청취자

remove

public <T extends EventListener > void remove(Class <T> t,
                                             T l)
지정된 형태의 청취자로서 청취자를 삭제합니다.

파라미터:
t - 삭제되는 청취자의 형태
l - 삭제되는 청취자

toString

public String  toString()
EventListenerList 의 캐릭터 라인 표현을 돌려줍니다.

오버라이드(override):
클래스 Object 내의 toString
반환값:
이 객체의 캐릭터 라인 표현

JavaTM Platform
Standard Ed. 6

버그의 보고와 기능의 요청
한층 더 자세한 API 레퍼런스 및 개발자 문서에 대해서는,Java SE 개발자용 문서를 참조해 주세요. 개발자전용의 상세한 해설, 개념의 개요, 용어의 정의, 버그의 회피책, 및 코드 실례가 포함되어 있습니다.

Copyright 2006 Sun Microsystems, Inc. All rights reserved. Use is subject to license terms . Documentation Redistribution Policy 도 참조해 주세요.