JavaTM Platform
Standard Ed. 6

java.awt
클래스 EventQueue

java.lang.Object 
  상위를 확장 java.awt.EventQueue


public class EventQueue
extends Object

EventQueue 는 어느 플랫폼으로도 공통의 클래스이며, 기본이 되는 피어 클래스와 신뢰할 수 있는 어플리케이션 클래스로부터의 이벤트를 큐에 넣습니다.  

큐로부터 이벤트를 추출하는 비동기 이벤트발송 기구를 캡슐화해, 발송 되는 이벤트를 인수로서 EventQueuedispatchEvent(AWTEvent) 메소드를 호출하는 것으로 발송 합니다. 실제의 동작은 구현에 따라서 다릅니다. 유일한 제한은, 이 큐 (EventQueue 에 보내진 이벤트는 합체 할 수 있다)에 실제로 넣을 수 있던 이벤트입니다.

차례차례
이것이 지정되고 있는 경우, 이 큐의 복수 이벤트의 동시 발송는 허가되지 않습니다.
큐에 넣어진 순서
AWTEvent A 가 AWTEvent B 보다 전에 EventQueue 에 넣어지고 있는 경우, 이벤트 B 를 이벤트 A 보다 전에 발송 할 수 없습니다.

일부의 브라우저는, 다른 코드 베이스의 애플릿을 다른 문맥에 분할해, 이러한 문맥의 사이에 벽을 구축합니다. 이 경우, 각 문맥 마다 1 개의 EventQueue 가 존재하게 됩니다. 모든 애플릿을 같은 문맥에 두어, 1 개의 글로벌 EventQueue 로 모든 애플릿을 동작시키는 브라우저도 있습니다. 이 동작은 구현에 의존합니다. 자세한 것은 브라우저의 메뉴얼을 참조해 주세요.  

이벤트발송 기능의 thread 문제에 대해서는「AWT Threading Issues」를 참조해 주세요.

도입된 버젼:
1.1

생성자 의 개요
EventQueue ()
           
 
메소드의 개요
protected  void dispatchEvent (AWTEvent  event)
          이벤트를 발송 합니다.
static AWTEvent getCurrentEvent ()
          불려 간 thread에 관련지을 수 있었던 EventQueue 에 현재 발송 되고 있는 이벤트를 돌려줍니다.
static long getMostRecentEventTime ()
          불려 간 thread에 관련지을 수 있었던 EventQueue 로부터 발송 된, 제일 새로운 타임 스탬프를 가지는 이벤트의 타임 스탬프를 돌려줍니다.
 AWTEvent getNextEvent ()
          EventQueue 로부터 이벤트를 삭제해, 그 이벤트를 돌려줍니다.
static void invokeAndWait (Runnable  runnable)
          runnablerun 메소드가 the system EventQueue 의 발송쓰레드로 불려 가도록(듯이) 합니다.
static void invokeLater (Runnable  runnable)
          runnablerun 메소드가 the system EventQueue 의 발송쓰레드로 불려 가도록(듯이) 합니다.
static boolean isDispatchThread ()
          호출측 thread가 현재의 AWT EventQueue 의 발송쓰레드의 경우에 true 를 돌려줍니다.
 AWTEvent peekEvent ()
          EventQueue 의 최초의 이벤트를 삭제하지 않고 돌려줍니다.
 AWTEvent peekEvent (int id)
          지정된 ID 를 가지는 이벤트가 있는 경우, 그 중의 최초의 이벤트를 돌려줍니다.
protected  void pop ()
          이 EventQueue 를 사용하는 이벤트의 발송를 정지합니다.
 void postEvent (AWTEvent  theEvent)
          1. 1 형식의 이벤트를 EventQueue 에 송신합니다.
 void push (EventQueue  newEventQueue)
          기존의 EventQueue 를, 지정된 EventQueue 로 옮겨놓습니다.
 
클래스 java.lang. Object 로부터 상속된 메소드
clone , equals , finalize , getClass , hashCode , notify , notifyAll , toString , wait , wait , wait
 

생성자 의 상세

EventQueue

public EventQueue()
메소드의 상세

postEvent

public void postEvent(AWTEvent  theEvent)
1.1 형식의 이벤트를 EventQueue 에 송신합니다. 같은 ID 및 이벤트 소스를 가지는 큐에 이벤트가 있는 경우는, 소스 ComponentcoalesceEvents 메소드가 불려 갑니다.

파라미터:
theEvent - java.awt.AWTEvent 의 인스턴스, 또는 그 서브 클래스
예외:
NullPointerException - theEventnull 의 경우

getNextEvent

public AWTEvent  getNextEvent()
                      throws InterruptedException 
EventQueue 로부터 이벤트를 삭제해, 그 이벤트를 돌려줍니다. 이 메소드는, 다른 thread에 의해 이벤트가 송신될 때까지 블록 됩니다.

반환값:
다음의 AWTEvent
예외:
InterruptedException - 어떠한 thread가 이 thread에 끼어들었을 경우

peekEvent

public AWTEvent  peekEvent()
EventQueue 의 최초의 이벤트를 삭제하지 않고 돌려줍니다.

반환값:
최초의 이벤트

peekEvent

public AWTEvent  peekEvent(int id)
지정된 ID 를 가지는 이벤트가 있는 경우, 그 중의 최초의 이벤트를 돌려줍니다.

파라미터:
id - 요구하는 이벤트형의 ID
반환값:
지정된 ID 를 가지는 최초의 이벤트. 이 ID 를 가지는 이벤트가 존재하지 않는 경우는 null

dispatchEvent

protected void dispatchEvent(AWTEvent  event)
이벤트를 발송 합니다. 발송 방법은, 이벤트의 형태 및 이벤트의 소스 객체의 형태에 따라서 다릅니다.

이벤트형 소스형 발송 방법
ActiveEvent Any event.dispatch()
그 외 Component source.dispatchEvent(AWTEvent)
그 외 MenuComponent source.dispatchEvent(AWTEvent)
그 외 그 외 처리되지 않는다 (무시된다)

파라미터:
event - java.awt.AWTEvent 의 인스턴스, 또는 그 서브 클래스
예외:
NullPointerException - eventnull 의 경우
도입된 버젼:
1.2

getMostRecentEventTime

public static long getMostRecentEventTime()
불려 간 thread에 관련지을 수 있었던 EventQueue 로부터 발송 된, 제일 새로운 타임 스탬프를 가지는 이벤트의 타임 스탬프를 돌려줍니다. 타임 스탬프를 가지는 이벤트가 발송중의 경우, 그 타임 스탬프가 돌려주어집니다. 이벤트가 전혀 발송되어 있지 않은 경우, EventQueue 가 초기화된 시간이 돌려주어집니다. JDK 의 현재의 버젼에서는,InputEvent,ActionEvent, 및 InvocationEvent 만이 타임 스탬프를 가집니다만, 장래의 버젼에서는 다른 이벤트형에도 타임 스탬프가 추가될 가능성이 있습니다. 이 메소드는 어플리케이션의 이벤트발송쓰레드로부터만 호출하도록 해 주세요. 다른 thread로부터 호출했을 경우,System.currentTimeMillis() 로 리포트되는 현재의 시스템 시각이 돌려주어집니다.

반환값:
발송 되는, 마지막 InputEvent, ActionEvent, 또는 InvocationEvent 의 타임 스탬프. 이 메소드가 이벤트발송쓰레드 이외의 thread로부터 불려 가는 경우는 System.currentTimeMillis()
도입된 버젼:
1.4
관련 항목:
InputEvent.getWhen() , ActionEvent.getWhen() , InvocationEvent.getWhen()

getCurrentEvent

public static AWTEvent  getCurrentEvent()
불려 간 thread에 관련지을 수 있었던 EventQueue 에 현재 발송 되고 있는 이벤트를 돌려줍니다. 메소드가 이벤트에 액세스 할 필요가 있어, 이벤트에의 참조를 인수로서 받도록(듯이) 설계되어 있지 않은 경우에 유효합니다. 이 메소드는 어플리케이션의 이벤트발송쓰레드로부터만 호출하도록 해 주세요. 다른 thread로부터 호출했을 경우, null 가 돌려주어집니다.

반환값:
현재 발송 되고 있는 이벤트. 이 메소드가 이벤트발송쓰레드 이외의 thread로부터 불려 가고 있는 경우는 null
도입된 버젼:
1.4

push

public void push(EventQueue  newEventQueue)
기존의 EventQueue 를, 지정된 EventQueue 로 옮겨놓습니다. 대기 상태의 이벤트는, 처리를 위해서(때문에) 새로운 EventQueue 에 전송 됩니다.

파라미터:
newEventQueue - 사용되는 EventQueue 또는 그 서브 클래스의 인스턴스
예외:
NullPointerException - newEventQueuenull 의 경우
도입된 버젼:
1.2
관련 항목:
pop()

pop

protected void pop()
            throws EmptyStackException 
EventQueue 를 사용하는 이벤트의 발송를 정지합니다. 대기 상태의 이벤트는, 처리를 위해서(때문에) 전의 EventQueue 에 전송 됩니다.  

경고:데드락 회피를 위해, 이 메소드를 서브 클래스에서 동기 선언하지 않게 합니다.

예외:
EmptyStackException - 이 EventQueue 로 이전에 푸쉬를 하지 않은 경우
도입된 버젼:
1.2
관련 항목:
push(java.awt.EventQueue)

isDispatchThread

public static boolean isDispatchThread()
호출측 thread가 현재의 AWT EventQueue 의 발송쓰레드의 경우에 true 를 돌려줍니다. 이 메소드를 사용하면(자), 지정된 태스크를 현재의 AWT EventDispatchThread 로 확실히 실행시키는 (또는 실행시키지 않게 한다) 일이 생깁니다.

반환값:
현재의 AWT EventQueue 의 발송쓰레드로 동작하고 있는 경우는 true
도입된 버젼:
1.2

invokeLater

public static void invokeLater(Runnable  runnable)
runnablerun 메소드가 the system EventQueue 의 발송쓰레드로 불려 가도록(듯이) 합니다. 대기 상태의 모든 이벤트가 처리된 후에 실행됩니다.

파라미터:
runnable - run 메소드가 EventQueue 로 동기에 실행되지 않으면 안 된다 Runnable
도입된 버젼:
1.2
관련 항목:
invokeAndWait(java.lang.Runnable)

invokeAndWait

public static void invokeAndWait(Runnable  runnable)
                          throws InterruptedException ,
                                 InvocationTargetException 
runnablerun 메소드가 the system EventQueue 의 발송쓰레드로 불려 가도록(듯이) 합니다. 대기 상태의 모든 이벤트가 처리된 후에 실행됩니다. 호출은 이것이 실행될 때까지 블록 됩니다. 이 메소드는, 이벤트 디스펫쳐 thread로부터 불려 가면(자) Error 를 throw 합니다.

파라미터:
runnable - run 메소드가 EventQueue 로 동기에 실행되지 않으면 안 된다 Runnable
예외:
InterruptedException - 어떠한 thread가 이 thread에 끼어들었을 경우
InvocationTargetException - runnable 의 동작중에 Throwable 가 throw 되는 경우
도입된 버젼:
1.2
관련 항목:
invokeLater(java.lang.Runnable)

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 도 참조해 주세요.