저는 간단한 자바 게임을 만들고 있습니다. 3..2..1을 만들어야합니다 ... Go! "3", "2", "1"지정된 시간 동안 기다리십시오. java (Thread.sleep()이 아님)
public void paint321(Graphics g) { // <-- called from paintComponent(Graphics)
try {
int hei = this.getHeight(), wid = this.getWidth();
g.drawString("3", (int)(wid/2), (int)(hei/2));
Thread.sleep(1000);
g.drawString("2", (int)(wid/2), (int)(hei/2));
Thread.sleep(1000);
g.drawString("1", (int)(wid/2), (int)(hei/2));
Thread.sleep(1000);
g.drawString("Go!", (int)(wid/2)-6, (int)(hei/2));
}
catch (InterruptedException ex) { ...
그러나 게임의 GamePanel은 (내 패널 인 JPanel을 확장하고 JFrame의에) 3 초 동안 흰색 찾은 다음 내가 볼 : 내 코드는 다음과 같다 그리고 "가!" 서로에 갇혀있다.
스레드를 사용할 수 없지만 컴퓨터에 현재 스레드 (내 GamePanel, 내가 추측)를 표시하지 않기 때문에라고 생각합니다.
제 질문은 : Thread.sleep()을 사용하지 않고 specipied time (제 경우에는 1 초)을 어떻게 대기시킬 수 있습니까? 또는 흰색 패널이 표시되는 이유에 대한 설명을 제공하십시오.
이 메소드를 호출 한 후 무엇을해야합니까? – Eugene
@Eugene 아무 것도 붙어 있지 않은 단어를보고 나서 프로그램을 닫습니다. – maxpesa