JavaTM Platform
Standard Ed. 6

javax.swing
클래스 Timer

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


public class Timer
extends Object
implements Serializable

지정된 시간의 경과후에, 1개(살) 이상의 ActionEvent 를 트리거합니다. 예를 들어, 애니메이션 객체는, 프레임을 draw 하는 트리거로서 Timer 를 사용합니다.

타이머의 설정에는,Timer 객체의 생성, 객체에의 1 개 이상의 액션 청취자의 등록, 및 start 메소드를 사용한 타이머의 기동이 포함됩니다. 예를 들어, 다음에 나타내는 코드에서는,Timer 생성자 에의 최초의 인수에 의해 지정된 것처럼, 액션 이벤트가 1 초간에 1 회생 이루어져 기동됩니다. Timer 생성자 에의 2 번째의 인수에서는, 타이머의 액션 이벤트를 수신하는 청취자를 지정하고 있습니다.

  int delay = 1000; //milliseconds
  ActionListener taskPerformer = new ActionListener() {
      public void actionPerformed(ActionEvent evt) {
          //...Perform a task...
      }
  };
  new Timer(delay, taskPerformer). start();

Timer 를 구축할 때는, 지연 파라미터와 ActionListener 의 양쪽 모두를 지정합니다. 지연 파라미터는, 초기 지연과 이벤트가 트리거될 때까지의 지연의 양쪽 모두의 설정에 사용합니다. 단위는 밀리 세컨드입니다. 타이머는, 개시 후, 등록된 청취자에 대한 최초의 ActionEvent 가 트리거될 때까지의 초기 지연을 대기합니다. 이 최초의 이벤트의 발생 후는, 타이머가 정지할 때까지, 이벤트간 지연이 경과할 때마다 이벤트를 트리거하는 처리를 계속합니다.

구축 후, 초기 지연과 이벤트간 지연은 따로 따로 변경할 수 있습니다. 새롭게 ActionListener 를 추가할 수도 있습니다.

타이머를 1 회만 트리거한 뒤 정지하려면 , 타이머에 setRepeats(false) 를 호출합니다.

모든 Timer 는, 실행하는 최초의 Timer 객체가 작성한 단일의 공유 thread를 사용해 대기 처리를 실행합니다만,Timer 의 액션 이벤트 핸들러는, 그것과는 다른 이벤트발송쓰레드로 실행됩니다. 그 때문에,Timer 의 액션 이벤트 핸들러는 Swing 컴퍼넌트의 조작을 안전하게 실행할 수 있습니다. 다만, 한편으로 Timer 의 액션 이벤트 핸들러는, GUI 의 응답을 유지할 수 있도록, 신속히 동작할 필요가 있습니다.

버젼 1.3 에서는, 새로운 Timer 클래스 java.util.Timer 이 Java 플랫폼에 추가되고 있습니다. 이 클래스와 javax.swing.Timer 의 기본적인 기능은 같습니다만,java.util.Timer 는 보다 범용적이어보다 많은 기능을 가지고 있습니다. javax.swing.Timer 에는, GUI 에서의 사용을 용이하게 하는 2 개의 특징이 있습니다. 1 번째는, 이벤트 처리 metaphor가 GUI 프로그래머에게 친숙함이 있어서 , 이벤트발송쓰레드의 취급이 간단하게 되어 있는 것입니다. 2 번째는, 자동 공유 thread에 의해, 생성하는 thread의 수가 다대하게 되는 것을 회피하기 위한 특별한 순서가 불필요하게 되는 것입니다. 다만, 타이머는, 커서의 점멸이나 툴팁의 표시등과 같은 thread를 사용합니다.

타이머의 상세와 사용예에 대해서는, 「The Java Tutorial」의「How to Use Timers」를 참조해 주세요. 이 Timer 클래스와 java.util.Timer 의 선택 기준이나 사용예에 대해서는, 「The Swing Connection」의「Using Timers in Swing Applications」를 참조해 주세요.

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

관련 항목:
java.util.Timer

필드의 개요
protected  EventListenerList listenerList
           
 
생성자 의 개요
Timer (int delay, ActionListener  listener)
          Timer 를 작성해, 초기 지연과 이벤트간 지연의 초기치를 delay 밀리 세컨드로 설정합니다.
 
메소드의 개요
 void addActionListener (ActionListener  listener)
          액션 청취자를 Timer 에 추가합니다.
protected  void fireActionPerformed (ActionEvent  e)
          통지의 전달 대상을, 지정된 이벤트형으로 등록한 모든 청취자에게 통지합니다.
 String getActionCommand ()
          이 타이머에 의해 트리거된 ActionEvent 내의 액션 커멘드로서 전달되는 캐릭터 라인을 돌려줍니다.
 ActionListener [] getActionListeners ()
          타이머에 등록된 모든 액션 청취자의 배열을 돌려줍니다.
 int getDelay ()
          다음의 액션 이벤트가 트리거될 때까지의 지연 시간 (밀리 세컨드 단위)을 돌려줍니다.
 int getInitialDelay ()
          Timer 의 초기 지연을 돌려줍니다.
<T extends EventListener >
T[]
getListeners (Class <T> listenerType)
          이 TimerFooListener 로서 현재 등록되어 모든 객체의 배열을 돌려줍니다.
static boolean getLogTimers ()
          로그가 유효한 경우에 true 를 돌려줍니다.
 boolean isCoalesce ()
          Timer 가 보류중의 복수의 액션 이벤트를 합체 시키는 경우는 true 를 돌려줍니다.
 boolean isRepeats ()
          Timer 가 액션 이벤트를 청취자에게 여러 차례 송신하는 경우, 디폴트의 true 를 돌려줍니다.
 boolean isRunning ()
          Timer 가 실행중이면,true 를 돌려줍니다.
 void removeActionListener (ActionListener  listener)
          지정된 액션 청취자를 Timer 로부터 삭제합니다.
 void restart ()
          Timer 를 재기동합니다.
 void setActionCommand (String  command)
          이 타이머에 의해 트리거된 ActionEvent 내의 액션 커멘드로서 전달되는 캐릭터 라인을 설정합니다.
 void setCoalesce (boolean flag)
          Timer 가 보류중의 복수의 ActionEvent 트리거를 합체 시킬지 어떨지를 설정합니다.
 void setDelay (int delay)
          이벤트간의 Timer 의 지연 시간을 밀리 세컨드 단위로 설정합니다.
 void setInitialDelay (int initialDelay)
          Timer 의 초기 지연을 밀리 세컨드 단위로 설정합니다.
static void setLogTimers (boolean flag)
          타이머의 로그를 유효 또는 무효로 합니다.
 void setRepeats (boolean flag)
          flagfalse 의 경우, 액션 이벤트를 1개만 청취자에게 송신하도록(듯이) Timer 에 명령합니다.
 void start ()
          Timer 를 기동해, 청취자에게로의 액션 이벤트의 송신을 개시합니다.
 void stop ()
          Timer 를 기동해, 청취자에게로의 액션 이벤트의 송신을 정지합니다.
 
클래스 java.lang. Object 로부터 상속된 메소드
clone , equals , finalize , getClass , hashCode , notify , notifyAll , toString , wait , wait , wait
 

필드의 상세

listenerList

protected EventListenerList  listenerList
생성자 의 상세

Timer

public Timer(int delay,
             ActionListener  listener)
Timer 를 작성해, 초기 지연과 이벤트간 지연의 초기치를 delay 밀리 세컨드로 설정합니다. delay 가 0 이하의 경우, 타이머는 기동과 동시에 이벤트를 트리거합니다. listener 가 null 이외의 경우는, 타이머의 액션 청취자로서 등록됩니다.

파라미터:
delay - 초기 지연과 이벤트간 지연을 나타내는 값 (밀리 세컨드)
listener - 초기의 청취자. null 의 경우도 있어
관련 항목:
addActionListener(java.awt.event.ActionListener) , setInitialDelay(int) , setRepeats(boolean)
메소드의 상세

addActionListener

public void addActionListener(ActionListener  listener)
액션 청취자를 Timer 에 추가합니다.

파라미터:
listener - 추가하는 청취자
관련 항목:
Timer(int, java.awt.event.ActionListener)

removeActionListener

public void removeActionListener(ActionListener  listener)
지정된 액션 청취자를 Timer 로부터 삭제합니다.

파라미터:
listener - 삭제하는 청취자

getActionListeners

public ActionListener [] getActionListeners()
타이머에 등록된 모든 액션 청취자의 배열을 돌려줍니다.

반환값:
타이머의 모든 ActionListener, 현재 등록되어 있는 청취자가 없는 경우는 빈 상태(empty)의 배열
도입된 버젼:
1.4
관련 항목:
addActionListener(java.awt.event.ActionListener) , removeActionListener(java.awt.event.ActionListener)

fireActionPerformed

protected void fireActionPerformed(ActionEvent  e)
통지의 전달 대상을, 지정된 이벤트형으로 등록한 모든 청취자에게 통지합니다.

파라미터:
e - 트리거하는 액션 이벤트
관련 항목:
EventListenerList

getListeners

public <T extends EventListener > T[] getListeners(Class <T> listenerType)
TimerFooListener 로서 현재 등록되어 모든 객체의 배열을 돌려줍니다. FooListener 는,addFooListener 메소드를 사용해 등록합니다.

FooListener.class 라고 하는 클래스 리터럴을 사용해,listenerType 인수를 지정할 수 있습니다. 예를 들어, 액션 청취자의 Timer 인스턴스 t 를 조회하려면 , 다음의 코드를 사용합니다.

ActionListener[] als = (ActionListener[])(t.getListeners(ActionListener.class));
이러한 청취자가 없는 경우는 빈 상태(empty)의 배열을 돌려줍니다.

파라미터:
listenerType - 요구된 청취자의 타입. 이 파라미터는 java.util.EventListener 의 하위 인터페이스를 지정한다
반환값:
이 타이머에 FooListener 로서 등록되어 모든 객체 의 배열. 그러한 청취자가 추가되어 있지 않은 경우는 빈 상태(empty)의 배열
예외:
ClassCastException - listenerTypejava.util.EventListener 를 구현하는 클래스 또는 인터페이스를 지정하지 않는 경우
도입된 버젼:
1.3
관련 항목:
getActionListeners() , addActionListener(java.awt.event.ActionListener) , removeActionListener(java.awt.event.ActionListener)

setLogTimers

public static void setLogTimers(boolean flag)
타이머의 로그를 유효 또는 무효로 합니다. 유효하게 하면(자), 타이머가 끊어졌을 때에 System.out 에 메세지가 보내집니다.

파라미터:
flag - 로그를 유효하게 하는 경우는 true
관련 항목:
getLogTimers()

getLogTimers

public static boolean getLogTimers()
로그가 유효한 경우에 true 를 돌려줍니다.

반환값:
로그가 유효한 경우는 true, 그렇지 않은 경우는 false
관련 항목:
setLogTimers(boolean)

setDelay

public void setDelay(int delay)
이벤트간의 Timer 의 지연 시간을 밀리 세컨드 단위로 설정합니다. 이것은 초기 지연의 프로퍼티에는 영향을 미치지 않습니다. 초기 지연은 setInitialDelay 메소드로 설정 가능합니다.

파라미터:
delay - 지연 시간 (밀리 세컨드 단위)
관련 항목:
setInitialDelay(int)

getDelay

public int getDelay()
다음의 액션 이벤트가 트리거될 때까지의 지연 시간 (밀리 세컨드 단위)을 돌려줍니다.

관련 항목:
setDelay(int) , getInitialDelay()

setInitialDelay

public void setInitialDelay(int initialDelay)
Timer 의 초기 지연을 밀리 세컨드 단위로 설정합니다. 초기 지연이란, 타이머가 기동한 후, 최초의 이벤트를 트리거할 때까지의 대기 시간의 일입니다. 구축시에는 이벤트간 지연과 같은 값이 설정되어 있습니다만, 그 후는 따로 따로 변경 가능합니다. 이벤트간 지연이 변경되어도, 초기 지연에 영향은 없습니다.

파라미터:
initialDelay - 초기 지연 (밀리 세컨드 단위)
관련 항목:
setDelay(int)

getInitialDelay

public int getInitialDelay()
Timer 의 초기 지연을 돌려줍니다.

관련 항목:
setInitialDelay(int) , setDelay(int)

setRepeats

public void setRepeats(boolean flag)
flagfalse 의 경우, 액션 이벤트를 1개만 청취자에게 송신하도록(듯이) Timer 에 명령합니다.

파라미터:
flag - 최초의 액션 이벤트의 송신 후, 타이머를 정지하는 경우는 false (을)를 지정한다

isRepeats

public boolean isRepeats()
Timer 가 액션 이벤트를 청취자에게 여러 차례 송신하는 경우, 디폴트의 true 를 돌려줍니다.

관련 항목:
setRepeats(boolean)

setCoalesce

public void setCoalesce(boolean flag)
Timer 가 보류중의 복수의 ActionEvent 트리거를 합체 시킬지 어떨지를 설정합니다. Busy 어플리케이션은 Timer 의 이벤트 생성을 따라 잡을 수 없는 것이 있기 (위해)때문에, 결과적으로 복수의 액션 이벤트가 큐에 들어갑니다. 처리를 하면(자), 어플리케이션은 이러한 이벤트를 차례차례로 보내므로,Timer 의 청취자는 지연 없게 일련의 이벤트를 받습니다. 보류중의 복수 이벤트를 1 개의 이벤트에 합체 하면 이 상황을 피할 수 있습니다. Timer 는, 그러한 이벤트를 디폴트로 1 개에 합체 합니다.

파라미터:
flag - 합체를 오프로 하는 경우는 false

isCoalesce

public boolean isCoalesce()
Timer 가 보류중의 복수의 액션 이벤트를 합체 시키는 경우는 true 를 돌려줍니다.

관련 항목:
setCoalesce(boolean)

setActionCommand

public void setActionCommand(String  command)
이 타이머에 의해 트리거된 ActionEvent 내의 액션 커멘드로서 전달되는 캐릭터 라인을 설정합니다. null 도 설정 가능합니다.

파라미터:
command - 액션 커멘드
도입된 버젼:
1.6

getActionCommand

public String  getActionCommand()
이 타이머에 의해 트리거된 ActionEvent 내의 액션 커멘드로서 전달되는 캐릭터 라인을 돌려줍니다. 디폴트의 null 도 설정할 수 있습니다.

반환값:
이벤트의 트리거에 사용하는 액션 커멘드
도입된 버젼:
1.6

start

public void start()
Timer 를 기동해, 청취자에게로의 액션 이벤트의 송신을 개시합니다.

관련 항목:
stop()

isRunning

public boolean isRunning()
Timer 가 실행중이면,true 를 돌려줍니다.

관련 항목:
start()

stop

public void stop()
Timer 를 기동해, 청취자에게로의 액션 이벤트의 송신을 정지합니다.

관련 항목:
start()

restart

public void restart()
Timer 를 재기동합니다. 이 때, 이벤트의 트리거가 보류중의 경우는 취소해, 초기 지연을 사용해 이벤트를 트리거합니다.


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