|
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, 그렇지 않은 경우는 falsecheckAll(boolean) ,
checkID(int) ,
isErrorAny() ,
isErrorID(int) public boolean checkAll(boolean load)
load 플래그의 값이 true 의 경우, 이 메소드는, 아직 로드안이 아닌 이미지의 로드를 개시합니다.
이미지의 로드 또는 슬캘링중에 에러가 발생하면(자), 그 이미지의 로드는 완료했다고 보여집니다. isErrorAny 와 isErrorID 메소드를 사용하면(자), 에러를 조사할 수 있습니다.
load - true 의 경우,
아직 로드가 개시되어 있지 않은 이미지가 있으면 로드를 개시한다
true, 그렇지 않은 경우는 falsecheckID(int) ,
checkAll() ,
isErrorAny() ,
isErrorID(int) public boolean isErrorAny()
true,
그렇지 않은 경우는 falseisErrorID(int) ,
getErrorsAny() public Object [] getErrorsAny()
nullisErrorAny() ,
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, 그렇지 않은 경우는 falsecheckID(int, boolean) ,
checkAll() ,
isErrorAny() ,
isErrorID(int)
public boolean checkID(int id,
boolean load)
load 플래그의 값이 true 의 경우, 이 메소드는, 아직 로드안이 아닌 이미지의 로드를 개시합니다.
이미지의 로드 또는 슬캘링중에 에러가 발생하면(자), 그 이미지의 로드는 완료했다고 보여집니다. isErrorAny 또는 isErrorID 메소드를 사용하면(자), 에러를 조사할 수 있습니다.
id - 조사하는 대상이 되는 이미지의 식별자load - true 의 경우,
아직 로드가 개시되어 있지 않은 이미지가 있으면 로드를 개시한다
true, 그렇지 않은 경우는 falsecheckID(int, boolean) ,
checkAll() ,
isErrorAny() ,
isErrorID(int) public boolean isErrorID(int id)
id - 조사하는 대상이 되는 이미지의 식별자
true,
그렇지 않은 경우는 falseisErrorAny() ,
getErrorsID(int) public Object [] getErrorsID(int id)
id - 조사하는 대상이 되는 이미지의 식별자
nullisErrorID(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 도 참조해 주세요.