|
JavaTM Platform Standard Ed. 6 |
|||||||||
전의 클래스 다음의 클래스 | 프레임 있어 프레임 없음 | |||||||||
개요: 상자 | 필드 | 생성자 | 메소드 | 상세 : 필드 | 생성자 | 메소드 |
java.lang.Objectjavax.swing.Timer
public class Timer
지정된 시간의 경과후에, 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 의 초기 지연을 돌려줍니다. |
|
|
getListeners (Class <T> listenerType)
이 Timer 에 FooListener 로서 현재 등록되어 모든 객체의 배열을 돌려줍니다. |
|
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)
flag 가 false 의 경우, 액션 이벤트를 1개만 청취자에게 송신하도록(듯이) Timer 에 명령합니다. |
|
void |
start ()
Timer 를 기동해, 청취자에게로의 액션 이벤트의 송신을 개시합니다. |
|
void |
stop ()
Timer 를 기동해, 청취자에게로의 액션 이벤트의 송신을 정지합니다. |
클래스 java.lang. Object 로부터 상속된 메소드 |
---|
clone , equals , finalize , getClass , hashCode , notify , notifyAll , toString , wait , wait , wait |
필드의 상세 |
---|
protected EventListenerList listenerList
생성자 의 상세 |
---|
public Timer(int delay, ActionListener listener)
Timer
를 작성해, 초기 지연과 이벤트간 지연의 초기치를 delay
밀리 세컨드로 설정합니다. delay
가 0 이하의 경우, 타이머는 기동과 동시에 이벤트를 트리거합니다. listener 가 null
이외의 경우는, 타이머의 액션 청취자로서 등록됩니다.
delay
- 초기 지연과 이벤트간 지연을 나타내는 값 (밀리 세컨드)listener
- 초기의 청취자. null
의 경우도 있어addActionListener(java.awt.event.ActionListener)
,
setInitialDelay(int)
,
setRepeats(boolean)
메소드의 상세 |
---|
public void addActionListener(ActionListener listener)
Timer
에 추가합니다.
listener
- 추가하는 청취자Timer(int, java.awt.event.ActionListener)
public void removeActionListener(ActionListener listener)
Timer
로부터 삭제합니다.
listener
- 삭제하는 청취자public ActionListener [] getActionListeners()
ActionListener
,
현재 등록되어 있는 청취자가 없는 경우는 빈 상태(empty)의 배열addActionListener(java.awt.event.ActionListener)
,
removeActionListener(java.awt.event.ActionListener)
protected void fireActionPerformed(ActionEvent e)
e
- 트리거하는 액션 이벤트EventListenerList
public <T extends EventListener > T[] getListeners(Class <T> listenerType)
Timer
에 FooListener
로서 현재 등록되어 모든 객체의 배열을 돌려줍니다. FooListener
는,addFooListener
메소드를 사용해 등록합니다.
FooListener.class
라고 하는 클래스 리터럴을 사용해,listenerType
인수를 지정할 수 있습니다. 예를 들어, 액션 청취자의 Timer
인스턴스 t
를 조회하려면 , 다음의 코드를 사용합니다.
ActionListener[] als = (ActionListener[])(t.getListeners(ActionListener.class));이러한 청취자가 없는 경우는 빈 상태(empty)의 배열을 돌려줍니다.
listenerType
- 요구된 청취자의 타입.
이 파라미터는
java.util.EventListener
의 하위 인터페이스를 지정한다
FooListener
로서 등록되어 모든 객체
의 배열.
그러한 청취자가 추가되어 있지 않은 경우는 빈 상태(empty)의 배열
ClassCastException
- listenerType
가
java.util.EventListener
를 구현하는 클래스 또는 인터페이스를 지정하지 않는 경우getActionListeners()
,
addActionListener(java.awt.event.ActionListener)
,
removeActionListener(java.awt.event.ActionListener)
public static void setLogTimers(boolean flag)
System.out
에 메세지가 보내집니다.
flag
- 로그를 유효하게 하는 경우는 true
getLogTimers()
public static boolean getLogTimers()
true
를 돌려줍니다.
true
, 그렇지 않은 경우는 falsesetLogTimers(boolean)
public void setDelay(int delay)
Timer
의 지연 시간을 밀리 세컨드 단위로 설정합니다. 이것은 초기 지연의 프로퍼티에는 영향을 미치지 않습니다. 초기 지연은 setInitialDelay
메소드로 설정 가능합니다.
delay
- 지연 시간 (밀리 세컨드 단위)setInitialDelay(int)
public int getDelay()
setDelay(int)
,
getInitialDelay()
public void setInitialDelay(int initialDelay)
Timer
의 초기 지연을 밀리 세컨드 단위로 설정합니다. 초기 지연이란, 타이머가 기동한 후, 최초의 이벤트를 트리거할 때까지의 대기 시간의 일입니다. 구축시에는 이벤트간 지연과 같은 값이 설정되어 있습니다만, 그 후는 따로 따로 변경 가능합니다. 이벤트간 지연이 변경되어도, 초기 지연에 영향은 없습니다.
initialDelay
- 초기 지연 (밀리 세컨드 단위)setDelay(int)
public int getInitialDelay()
Timer
의 초기 지연을 돌려줍니다.
setInitialDelay(int)
,
setDelay(int)
public void setRepeats(boolean flag)
flag
가 false
의 경우, 액션 이벤트를 1개만 청취자에게 송신하도록(듯이) Timer
에 명령합니다.
flag
- 최초의 액션 이벤트의 송신 후, 타이머를 정지하는 경우는 false
(을)를 지정한다public boolean isRepeats()
Timer
가 액션 이벤트를 청취자에게 여러 차례 송신하는 경우, 디폴트의 true
를 돌려줍니다.
setRepeats(boolean)
public void setCoalesce(boolean flag)
Timer
가 보류중의 복수의 ActionEvent
트리거를 합체 시킬지 어떨지를 설정합니다. Busy 어플리케이션은 Timer
의 이벤트 생성을 따라 잡을 수 없는 것이 있기 (위해)때문에, 결과적으로 복수의 액션 이벤트가 큐에 들어갑니다. 처리를 하면(자), 어플리케이션은 이러한 이벤트를 차례차례로 보내므로,Timer
의 청취자는 지연 없게 일련의 이벤트를 받습니다. 보류중의 복수 이벤트를 1 개의 이벤트에 합체 하면 이 상황을 피할 수 있습니다. Timer
는, 그러한 이벤트를 디폴트로 1 개에 합체 합니다.
flag
- 합체를 오프로 하는 경우는 false
public boolean isCoalesce()
Timer
가 보류중의 복수의 액션 이벤트를 합체 시키는 경우는 true
를 돌려줍니다.
setCoalesce(boolean)
public void setActionCommand(String command)
ActionEvent
내의 액션 커멘드로서 전달되는 캐릭터 라인을 설정합니다. null
도 설정 가능합니다.
command
- 액션 커멘드public String getActionCommand()
ActionEvent
내의 액션 커멘드로서 전달되는 캐릭터 라인을 돌려줍니다. 디폴트의 null
도 설정할 수 있습니다.
public void start()
Timer
를 기동해, 청취자에게로의 액션 이벤트의 송신을 개시합니다.
stop()
public boolean isRunning()
Timer
가 실행중이면,true
를 돌려줍니다.
start()
public void stop()
Timer
를 기동해, 청취자에게로의 액션 이벤트의 송신을 정지합니다.
start()
public void restart()
Timer
를 재기동합니다. 이 때, 이벤트의 트리거가 보류중의 경우는 취소해, 초기 지연을 사용해 이벤트를 트리거합니다.
|
JavaTM Platform Standard Ed. 6 |
|||||||||
전의 클래스 다음의 클래스 | 프레임 있어 프레임 없음 | |||||||||
개요: 상자 | 필드 | 생성자 | 메소드 | 상세 : 필드 | 생성자 | 메소드 |
Copyright 2006 Sun Microsystems, Inc. All rights reserved. Use is subject to license terms . Documentation Redistribution Policy 도 참조해 주세요.