JFrame을 만들고 JFrame에 이미지 하나를 표시해야하는 클래스가 있습니다. 이미지는 몇 초마다 회전해야합니다.JPanel/JFrame이 업데이트되지 않습니다.
JFrame과 JPanel 모두에서 repaint(), revalidate() 및 validate()를 시도했지만 아무 것도 작동하지 않는 것 같습니다. 다음은 JFrame/JPanel을 업데이트하는 현재 코드입니다. 이 코드는 4 초를 기다린 다음 네 번째 이미지를 표시하지만 새 이미지로 매 초마다 업데이트하고 싶습니다.
public void startSlideshow(){
int i = 0;
Long oldTime = System.currentTimeMillis();
do {
Long currentTime = System.currentTimeMillis();
if(currentTime - oldTime >= 1000) {
img = new JLabel(new ImageIcon("Albums/" + album + "/" + imageNames.get(i)));
panel.removeAll();
panel.setBackground(Color.BLACK);
panel.add(img);
panel.revalidate();
panel.repaint();
i++;
oldTime = System.currentTimeMillis(); // reset reference time
}
} while(i<imageNames.size());
panel.removeAll();
panel.setBackground(Color.BLACK);
panel.add(img);
panel.getRootPane().revalidate();
panel.repaint();
}
나는 잠시 동안 내 머리를 두들 기면서 어떤 도움을 주셔서 감사합니다. 감사.
비록 그것이 작동했다하더라도, 당신이 바쁜 대기 루프를 사용하고있을 때 그것은 재앙이 될 것입니다. D : – Boann
@Boann이 방법은 효과가 없으며이 재앙이 발생하기 전에 약 10 가지 버전을 시도했습니다. 감사. – user2907236
1 초 기다림을 어디에서 관리하고 있습니까? –