Witam!
Mam za zadanie napisać program, który będzie wyświetlał obrazek z danego katalogu i po pięciu sekundach będzie wyświetlał kolejny. Generalnie wszystko spoko tylko najwidoczniej źle używam usypiania i nie działa poprawnie.
Oto kod:
import java.awt.*;
import java.io.*;
import javax.imageio.ImageIO;
import javax.swing.*;;
public class Zadanie_3 extends JPanel{
Image img;
String directory;
public void paintComponent(Graphics g){
super.paintComponent(g);
File[] plikObrazka = {new File("C:/Users/dell/Downloads/PJWSTK/pjwstk.jpg"),
new File("C:/Users/dell/Downloads/PJWSTK/panda3.jpg"),
new File("C:/Users/dell/Downloads/PJWSTK/java.jpg")};
try{
for(int i = 0 ; i < plikObrazka.length ; i++){
img = ImageIO.read(plikObrazka[i]);
g.drawImage(img, 0, 0, getWidth(), getHeight(), null);
}
try{
Thread.sleep(500);
} catch (Exception e){}
} catch (IOException e) {
System.err.println("Blad odczytu obrazka");
e.printStackTrace();
}
repaint(500);
}
public Dimension getPreferredSize(){
return new Dimension(300, 300);
}
public static void main(String[] args){
JFrame frame = new JFrame("Rysowanie ");//utworzenie okna ramowego
Zadanie_3 graph = new Zadanie_3(); //utworzenie panelu do rysowania
frame.getContentPane().add(graph); //dodanie panelu do okna ramowego
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); //obsługa zamkniecia okna
frame.setLocation(300, 300);
frame.pack(); //upakowanie okna
frame.show(); //wyswietlenie okna na ekranie
}
}
Zdaję sobie sprawę ze da się zrobić to na kilka innych sposobów żeby było lepiej.