=================================
=================================
=================================
출처: (202psj.tistory.com)
요번 java 7버전으로 업데이트 되면서 이런 현상이 두두러진다.
애플릿이 시작 할때 리소스를 로드하는 부분이나 로드 전에 잠시 딜레이를 준다.
import java.util.*;
import java.util.logging.Handler;
public class CTTimer
{
Timer _timer = new Timer();
long _delay;
TTask _timerTask = null;
Runnable onTimer;
class TTask extends TimerTask
{
@Override
public void run()
{
// TODO Auto-generated method stub
//OroBaduk.__gHandler.post(onTimer);
onTimer.run();
stop();
}
}
public CTTimer()
{
_delay = 30000;
}
public void start(int delay, Runnable cb)
{
_delay = delay;
onTimer = cb;
_timerTask = new TTask();
_timer.schedule(_timerTask, _delay, _delay);
}
public void start2(int delay, Runnable cb)
{
_delay = delay;
onTimer = cb;
_timerTask = new TTask();
_timer.schedule(_timerTask, 0, _delay);
}
public void stop()
{
_timer.cancel();
}
public boolean isRunning()
{
if(_timerTask == null || _timer == null)
return false;
return true;
}
}
-----------------------------------------------------------------------------
메인 클래스 부분.
public class CGameApp extends JPanel implements KeyListener, Runnable
{
//start 부분이나 초기화 부분, 시작관련 부분에 넣어준다.
CTTimer _qtimer = new CTTimer();
_qtimer.start(500, this);
}
@Override //Runnable <- run 오버라이딩, 쓰레드 따로 시작됨
public void run()
{
// TODO Auto-generated method stub
loadData(); //애플릿이 시작시 로드되면 안되는 경우가 있어 몇초후 로드가되게끔 설정
}
public void loadData()
{
//.....
// 각종 로드 할 것들.
//......
}
}
=================================
=================================
=================================
댓글 영역