EventQueue (Java Platform SE 6) - xrath.com 에서 번역됨

개요 | 패키지 | 클래스 | 사용 | 계층 트리 | 비추천 API | 색인 | 헬프

JavaTM Platform
Standard Ed. 6

앞의 클래스 다음의 클래스 | 프레임 있어 프레임 없음
개요: 상자 | 필드 | 생성자 | 메소드 | 상세: 필드 | 생성자 | 메소드

## java.awt
클래스 EventQueue

    java.lang.Object
      java.awt.EventQueue

    public class EventQueue

extends Object

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

큐로부터 이벤트를 추출하는 비동기 이벤트발송 기구를 캡슐화해, 발송 되는 이벤트를 인수로서 `EventQueue` 의 `dispatchEvent(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)` `runnable` 의 `run` 메소드가 `the system EventQueue` 의 발송쓰레드로 불려 가도록(듯이) 합니다.
`static void` | `invokeLater (Runnable runnable)` `runnable` 의 `run` 메소드가 `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 및 이벤트 소스를 가지는 큐에 이벤트가 있는 경우는, 소스 `Component` 의 `coalesceEvents` 메소드가 불려 갑니다.

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

### 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` - `event` 가 `null` 의 경우
  도입된 버젼:
    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` - `newEventQueue` 가 `null` 의 경우
  도입된 버젼:
    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)

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

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

### invokeAndWait

    public static void invokeAndWait(Runnable  runnable)
                              throws InterruptedException ,
                                     InvocationTargetException

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

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

개요 | 패키지 | 클래스 | 사용 | 계층 트리 | 비추천 API | 색인 | 헬프

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