스레드를 사용하여 JFrame에 이미지를 그리는 중입니다.
키를 청취하기 위해 keyListener를 추가했습니다. P을 눌렀을 때 이미지 그리기가 중단되고 P을 다시 누르면 도면이 다시 시작됩니다.자바에서 스레드가 재개되지 않습니까?
이것을 구현하기 위해 동기화 된 블록과 함께 대기/알림을 사용해 보았습니다.
일시 중지 만 작동하지만 이력서는 작동하지 않습니다.
이상한 ...
public static void main(String[] args)
{
static JFrame window1 = new JFrame();
static boolean isPaused=false;
Runnable r = new Runnable()
{
public void run()
{
while(true)
{
window1.paintImage();//fn to redraw an image
}
}
};
final Thread t = new Thread(r);
window1.addKeyListener(new KeyListener()
{
public void keyPressed(KeyEvent e)
{
if(e.getKeyCode() == KeyEvent.VK_P)
{
if(isPaused==false)
{
synchronized(t)
{
try
{
t.wait();
} catch (InterruptedException e1)
{
e1.printStackTrace();
}
}
isPaused=true;
} else
{
t.notifyAll();
isPaused=false;
}
}
}
public void keyReleased(KeyEvent arg0){}
public void keyTyped(KeyEvent arg0){}
});
t.start();
}
}