3 초 후 이미지가 자동으로 변경되는 창을 만들고 싶습니다. 이 내 코드입니다 :왜 JPanel을 한 번만 다시 그리는가?
JFrame frame=new JFrame();
pan pane= new pan();
frame.add(pane);
frame.setBounds(100, 100, 500, 500);
frame.setVisible(true);
try{
for(int i=0;i<returnedArray.size();i++){
pane.img=returnedArray.get(i).getFrontImage();
Thread.sleep(3000);
pane.repaint();
}
}catch(InterruptedException e){
e.printStackTrace();
}
class pan extends JPanel{
public Image img;
public void paint(Graphics g) {
g.drawImage(img, 0, 0, null);
}
}
... 그러나 나는 마지막 이미지를 나는 어쩌면 JVM 내 코드를 개선하고 있다고 생각 :(
모든 시간을 볼
가 어떻게이 문제를 방지 할 수 있습니다? 은 어쩌면 내가 잘못하고있는 중이 야?
내가 어떤 단서 : 매우 gratefull 될 것
GUI 스레드를 차단하고 있습니다. 'Thread.sleep' 대신 스윙 타이머를 사용하십시오. –
컴파일 된 코드를 보여줄 수 있습니까? –
'paint (Graphics)'메소드가 아닌'paintComponent (Graphics)'메소드를 오버라이드 (override)합니다. 또한 메소드에서'super.paintComponent (g)'를 호출하십시오. –