|
JavaTM Platform Standard Ed. 6 |
|||||||||
앞의 클래스 다음의 클래스 | 프레임 있어 프레임 없음 | |||||||||
개요: 상자 | 필드 | 생성자 | 메소드 | 상세 : 필드 | 생성자 | 메소드 |
java.lang.Objectjava.awt.MediaTracker
public class MediaTracker
MediaTracker
클래스는, 몇개의 미디어 객체 상태를 감시하는 유틸리티 클래스입니다. 미디어 객체에는, 이미지와 오디오 클립이 포함됩니다. 다만, 현재로서는 이미지만이 지원되고 있습니다.
메디아트락카를 사용하려면 , 감시하는 이미지 마다 MediaTracker
의 인스턴스를 생성하고 나서 addImage
를 호출합니다. 또, 각각의 이미지에는, 고유의 식별자를 할당할 수가 있습니다. 이러한 식별자는, 이미지를 꺼내는 우선 순위를 제어합니다. 또, 개별적으로 대기할 수 있는 이미지의 부분집합을 식별하기 위해서도 사용됩니다. 저위의 ID 번호를 가지는 이미지는, 고위의 ID 번호를 가지는 이미지보다 우선적으로 로드 됩니다.
동영상 이미지의 감시는, 동영상 이미지의 로드 및 draw의 멀티 파트의 특성이기 때문에, 항상 유효하다라고는 한정하지 않습니다만, 지원되고 있습니다. MediaTracker
는 최초의 프레임이 완전하게 로드 되었을 때에, 동영상 이미지를 완전하게 로드 된 것으로서 취급합니다. 그 시점에서 MediaTracker
는 이미지가 완전하게 로드 된 것을 대기하는 이미지에게 전합니다. 최초의 이미지의 로드가 완료했을 때에,ImageObserver
가 이미지를 감시하고 있지 않는 경우, 이미지 자체가 플래시 해, 자원이 절약됩니다 (Image.flush()
를 참조).
다음에MediaTracker
를 사용한 예를 나타냅니다.
import java.applet.Applet; import java.awt.Color; import java.awt.Image; import java.awt.Graphics; import java.awt.MediaTracker; public class ImageBlaster extends Applet implements Runnable { MediaTracker tracker; Image bg; Image anim[] = new Image[5]; int index; Thread animator; // Get the images for the background (id == 0) // and the animation frames (id == 1) // and add them to the MediaTracker public void init() { tracker = new MediaTracker(this); bg = getImage(getDocumentBase(), "images/background.gif"); tracker.addImage(bg, 0); for (int i = 0; i < 5; i++) { anim[i] = getImage(getDocumentBase(), "images/anim"+i+". gif"); tracker.addImage(anim[i], 1); } } // Start the animation thread. public void start() { animator = new Thread(this); animator.start(); } // Stop the animation thread. public void stop() { animator = null; } } // Run the animation thread. // First wait for the background image to fully load // and paint.Then wait for all of the animation // frames to finish loading.Finally, loop and // increment the animation frame index. public void run() { try { tracker.waitForID(0); tracker.waitForID(1); } catch (InterruptedException e) { return; } Thread me = Thread.currentThread( ); while (animator == me) { try { Thread.sleep(100); } catch (InterruptedException e) { break; } synchronized (this) { index++; if (index >= anim.length) { index = 0; } } repaint(); } } } // The background image fills the frame so we // don't need to clear the applet on repaints. // Just call the paint method. public void update(Graphics g) { paint(g); } } // Paint a large red rectangle if there are any errors // loading the images.Otherwise always paint the // background so that it appears incrementally as it // is loading.Finally, only paint the current animation // frame if all of the frames (id == 1) are done loading, // so that we don't get partial animations. public void paint(Graphics g) { if ((tracker.statusAll(false) & MediaTracker.ERRORED) ! = 0) { g.setColor(Color.red); g.fillRect(0, 0, size(). width, size(). height); return; } g.drawImage(bg, 0, 0, this); if (tracker.statusID(1, false) == MediaTracker.COMPLETE) { g.drawImage(anim[index], 10, 10, this); } } }
필드의 개요 | |
---|---|
static int |
ABORTED
미디어의 다운로드가 중지된 것을 나타내는 플래그입니다. |
static int |
COMPLETE
미디어의 다운로드가 정상적으로 종료한 것을 나타내는 플래그입니다. |
static int |
ERRORED
미디어의 다운로드로 에러가 있던 것을 나타내는 플래그입니다. |
static int |
LOADING
미디어가 로드되고 있는 것을 나타내는 플래그입니다. |
생성자 의 개요 | |
---|---|
MediaTracker (Component comp)
지정된 컴퍼넌트의 이미지를 감시하는 메디아트락카를 작성합니다. |
메소드의 개요 | |
---|---|
void |
addImage (Image image,
int id)
이 메디아트락카에 의해 감시되고 있는 리스트에 이미지를 추가합니다. |
void |
addImage (Image image,
int id,
int w,
int h)
이 메디아트락카에 의해 감시되고 있는 리스트에, 슬캘링 된 이미지를 추가합니다. |
boolean |
checkAll ()
이 메디아트락카에 의해 감시 떠날 수 있어 모든 이미지가, 로드를 완료했는지의 여부를 판정합니다. |
boolean |
checkAll (boolean load)
이 메디아트락카에 의해 감시 떠날 수 있어 모든 이미지가, 로드를 완료했는지의 여부를 판정합니다. |
boolean |
checkID (int id)
이 메디아트락카에 의해 감시되는, 지정된 식별자로 태그 붙이고 된 모든 이미지가, 로드를 완료했는지의 여부를 판정합니다. |
boolean |
checkID (int id,
boolean load)
이 메디아트락카에 의해 감시되는, 지정된 식별자로 태그 붙이고 된 모든 이미지가, 로드를 완료했는지의 여부를 판정합니다. |
Object [] |
getErrorsAny ()
에러가 있던 모든 미디어의 리스트를 돌려줍니다. |
Object [] |
getErrorsID (int id)
지정된 ID 를 가지는 미디어중 에러가 된 것의 리스트를 돌려줍니다. |
boolean |
isErrorAny ()
모든 이미지의 에러 상태를 조사합니다. |
boolean |
isErrorID (int id)
이 메디아트락카에 의해 감시되는, 지정된 식별자를 가지는 모든 이미지의 에러 상태를 조사합니다. |
void |
removeImage (Image image)
지정된 이미지를 이 메디아트락카로부터 삭제합니다. |
void |
removeImage (Image image,
int id)
이 메디아트락카의 지정된 감시 ID 로부터 지정된 이미지를 삭제합니다. |
void |
removeImage (Image image,
int id,
int width,
int height)
지정된 폭, 높이, ID 를 가지는 지정된 이미지를 이 메디아트락카로부터 삭제합니다. |
int |
statusAll (boolean load)
이 메디아트락카에 의해 감시되는 모든 미디어 상태의 비트 단위의논리합을 계산해 돌려줍니다. |
int |
statusID (int id,
boolean load)
이 메디아트락카에 의해 감시되는, 지정된 식별자를 가지는 모든 미디어 상태의 비트 단위의논리합을 계산해 돌려줍니다. |
void |
waitForAll ()
이 메디아트락카에 의해 감시되는 모든 이미지의 로드를 개시합니다. |
boolean |
waitForAll (long ms)
이 메디아트락카에 의해 감시되는 모든 이미지의 로드를 개시합니다. |
void |
waitForID (int id)
이 메디아트락카에 의해 감시되는, 지정된 식별자를 가지는 모든 이미지의 로드를 개시합니다. |
boolean |
waitForID (int id,
long ms)
이 메디아트락카에 의해 감시되는, 지정된 식별자를 가지는 모든 이미지의 로드를 개시합니다. |
클래스 java.lang. Object 로부터 상속된 메소드 |
---|
clone , equals , finalize , getClass , hashCode , notify , notifyAll , toString , wait , wait , wait |
필드의 상세 |
---|
public static final int LOADING
statusAll(boolean)
,
statusID(int, boolean)
,
정수 필드치 public static final int ABORTED
statusAll(boolean)
,
statusID(int, boolean)
,
정수 필드치 public static final int ERRORED
statusAll(boolean)
,
statusID(int, boolean)
,
정수 필드치 public static final int COMPLETE
statusAll(boolean)
,
statusID(int, boolean)
,
정수 필드치 생성자 의 상세 |
---|
public MediaTracker(Component comp)
comp
- 이미지가 최종적으로 draw 된다
컴퍼넌트메소드의 상세 |
---|
public void addImage(Image image, int id)
image
- 감시되는 이미지id
- 이 이미지를 감시하기 위해서 사용하는 식별자public void addImage(Image image, int id, int w, int h)
image
- 감시되는 이미지id
- 이 이미지를 감시하기 위해서 사용하는 식별자w
- 이미지가 draw 되는 영역의 폭h
- 이미지가 draw 되는 영역의 높이public boolean checkAll()
이 메소드는, 이미지가 아직 로드안이 아니면, 그러한 로드를 개시하지 않습니다.
이미지의 로드 또는 슬캘링중에 에러가 발생하면(자), 그 이미지의 로드는 완료했다고 보여집니다. isErrorAny
또는 isErrorID
메소드를 사용하면(자), 에러를 조사할 수 있습니다.
true
, 그렇지 않은 경우는 false
checkAll(boolean)
,
checkID(int)
,
isErrorAny()
,
isErrorID(int)
public boolean checkAll(boolean load)
load
플래그의 값이 true
의 경우, 이 메소드는, 아직 로드안이 아닌 이미지의 로드를 개시합니다.
이미지의 로드 또는 슬캘링중에 에러가 발생하면(자), 그 이미지의 로드는 완료했다고 보여집니다. isErrorAny
와 isErrorID
메소드를 사용하면(자), 에러를 조사할 수 있습니다.
load
- true
의 경우,
아직 로드가 개시되어 있지 않은 이미지가 있으면 로드를 개시한다
true
, 그렇지 않은 경우는 false
checkID(int)
,
checkAll()
,
isErrorAny()
,
isErrorID(int)
public boolean isErrorAny()
true
,
그렇지 않은 경우는 false
isErrorID(int)
,
getErrorsAny()
public Object [] getErrorsAny()
null
isErrorAny()
,
getErrorsID(int)
public void waitForAll() throws InterruptedException
이미지의 로드 또는 슬캘링중에 에러가 발생하면(자), 그 이미지의 로드는 완료했다고 보여집니다. isErrorAny
또는 isErrorID
메소드를 사용하면(자), 에러를 조사할 수 있습니다.
InterruptedException
- 몇개의 thread가
이 thread에 끼어들었을 경우waitForID(int)
,
waitForAll(long)
,
isErrorAny()
,
isErrorID(int)
public boolean waitForAll(long ms) throws InterruptedException
ms
인수에 의해 밀리 세컨드 단위로 지정된 시간이 경과할 때까지 대기합니다.
이미지의 로드 또는 슬캘링중에 에러가 발생하면(자), 그 이미지의 로드는 완료했다고 보여집니다. isErrorAny
또는 isErrorID
메소드를 사용하면(자), 에러를 조사할 수 있습니다.
ms
- 로드가 완료할 때까지 대기한다
밀리 세컨드수
true
,
그렇지 않은 경우는 false
InterruptedException
- 몇개의 thread가
이 thread에 끼어들었을 경우waitForID(int)
,
waitForAll(long)
,
isErrorAny()
,
isErrorID(int)
public int statusAll(boolean load)
MediaTracker
클래스에서 정의되는 플래그에는,LOADING
,ABORTED
,ERRORED
, 및 COMPLETE
가 있습니다. 로드를 개시하고 있지 않는 이미지 상태는 제로로 나타내집니다.
load
의 값이 true
의 경우, 이 메소드는 아직 로드가 개시되어 있지 않은 이미지의 로드를 개시합니다.
load
- true
의 경우,
아직 로드가 개시되어 있지 않은 이미지가 있으면 로드를 개시한다
statusID(int, boolean)
,
LOADING
,
ABORTED
,
ERRORED
,
COMPLETE
public boolean checkID(int id)
이 메소드는, 이미지가 아직 로드안이 아니면, 그러한 로드를 개시하지 않습니다.
이미지의 로드 또는 슬캘링중에 에러가 발생하면(자), 그 이미지의 로드는 완료했다고 보여집니다. isErrorAny
또는 isErrorID
메소드를 사용하면(자), 에러를 조사할 수 있습니다.
id
- 조사하는 대상이 되는 이미지의 식별자
true
, 그렇지 않은 경우는 false
checkID(int, boolean)
,
checkAll()
,
isErrorAny()
,
isErrorID(int)
public boolean checkID(int id, boolean load)
load
플래그의 값이 true
의 경우, 이 메소드는, 아직 로드안이 아닌 이미지의 로드를 개시합니다.
이미지의 로드 또는 슬캘링중에 에러가 발생하면(자), 그 이미지의 로드는 완료했다고 보여집니다. isErrorAny
또는 isErrorID
메소드를 사용하면(자), 에러를 조사할 수 있습니다.
id
- 조사하는 대상이 되는 이미지의 식별자load
- true
의 경우,
아직 로드가 개시되어 있지 않은 이미지가 있으면 로드를 개시한다
true
, 그렇지 않은 경우는 false
checkID(int, boolean)
,
checkAll()
,
isErrorAny()
,
isErrorID(int)
public boolean isErrorID(int id)
id
- 조사하는 대상이 되는 이미지의 식별자
true
,
그렇지 않은 경우는 false
isErrorAny()
,
getErrorsID(int)
public Object [] getErrorsID(int id)
id
- 조사하는 대상이 되는 이미지의 식별자
null
isErrorID(int)
,
isErrorAny()
,
getErrorsAny()
public void waitForID(int id) throws InterruptedException
이미지의 로드 또는 슬캘링중에 에러가 발생하면(자), 그 이미지의 로드는 완료했다고 보여집니다. isErrorAny
와 isErrorID
메소드를 사용하면(자), 에러를 조사할 수 있습니다.
id
- 조사하는 대상이 되는 이미지의 식별자
InterruptedException
- 몇개의 thread가
이 thread에 끼어들었을 경우waitForAll()
,
isErrorAny()
,
isErrorID(int)
public boolean waitForID(int id, long ms) throws InterruptedException
ms
인수에 의해 밀리 세컨드 단위로 지정한 시간이 경과할 때까지 대기합니다.
이미지의 로드 또는 슬캘링중에 에러가 발생하면(자), 그 이미지의 로드는 완료했다고 보여집니다. statusID
,isErrorID
, 및 isErrorAny
메소드를 사용하면(자), 에러를 조사할 수 있습니다.
id
- 조사하는 대상이 되는 이미지의 식별자ms
- 로드의 완료를 대기하는 밀리 세컨드 단위의
시간
InterruptedException
- 몇개의 thread가
이 thread에 끼어들었을 경우waitForAll()
,
waitForID(int)
,
statusID(int, boolean)
,
isErrorAny()
,
isErrorID(int)
public int statusID(int id, boolean load)
MediaTracker
클래스에서 정의되는 플래그에는,LOADING
,ABORTED
,ERRORED
, 및 COMPLETE
가 있습니다. 로드를 개시하고 있지 않는 이미지 상태는 제로로 나타내집니다.
load
의 값이 true
의 경우, 이 메소드는 아직 로드가 개시되어 있지 않은 이미지의 로드를 개시합니다.
id
- 조사하는 대상이 되는 이미지의 식별자load
- true
의 경우,
아직 로드가 개시되어 있지 않은 이미지가 있으면 로드를 개시한다
statusAll(boolean)
,
LOADING
,
ABORTED
,
ERRORED
,
COMPLETE
public void removeImage(Image image)
image
- 삭제되는 이미지removeImage(java.awt.Image, int)
,
removeImage(java.awt.Image, int, int, int)
public void removeImage(Image image, int id)
Image
의 모든 인스턴스는, 스케일 (와)는 관계없는 것으로 삭제됩니다.
image
- 삭제되는 이미지id
- 이미지의 삭제원의 감시 IDremoveImage(java.awt.Image)
,
removeImage(java.awt.Image, int, int, int)
public void removeImage(Image image, int id, int width, int height)
image
- 삭제되는 이미지id
- 이미지의 삭제원의 감시 IDwidth
- 삭제하는 폭 (슬캘링되어 있지 않은 경우는 -1)height
- 삭제하는 높이 (슬캘링되어 있지 않은 경우는 -1)removeImage(java.awt.Image)
,
removeImage(java.awt.Image, int)
|
JavaTM Platform Standard Ed. 6 |
|||||||||
앞의 클래스 다음의 클래스 | 프레임 있어 프레임 없음 | |||||||||
개요: 상자 | 필드 | 생성자 | 메소드 | 상세 : 필드 | 생성자 | 메소드 |
Copyright 2006 Sun Microsystems, Inc. All rights reserved. Use is subject to license terms . Documentation Redistribution Policy 도 참조해 주세요.