Mam zrobioną przeglądarkę zdjęć w javie. Próbuje zrobić jeszcze pokaz slajdów. To co napisałem zmienia obrazki ale paintcomponent odświeża się dopiero gdy skończy się pętla dlatego widać tylko pierwszy i ostatni obrazek. Nie wiem jak zrobić żeby odświeżanie było po każdej zmianie obrazka. Gdzieś czytałem że potrzebna jest obsługa wątków ale nie wiem jak to zrobić.
Panel gdzie wyświetlane są obrazki:
private class PanelDoRysowania extends JPanel
{
public void paintComponent(Graphics g)
{
Image czysczenie=null;
dimensionObrazka.height=wysObraz;
dimensionObrazka.width=szerObraz;
this.setSize(dimensionObrazka);
this.setPreferredSize(dimensionObrazka);
//System.out.println(szerObraz+" rep "+wysObraz);
g.drawImage(czysczenie, 0, 0, null);
g.drawImage(image, 0, 0, szerObraz, wysObraz, null);
repaint();
}
}
i action listener:
case 6:
try
{
String czasslajdu = JOptionPane.showInputDialog("Podaj czas slajdu.");
int czasslaj=Integer.parseInt(czasslajdu);
for (pol_obrazu_w_tablicy = 0; pol_obrazu_w_tablicy < pliki.length; pol_obrazu_w_tablicy++)
{
try
{
image = ImageIO.read(new File(folder_z_plikami.toString()+"\\"+pliki[pol_obrazu_w_tablicy]));
System.out.println("poczatek czekania");
Thread.sleep(czasslaj);
System.out.println("koniec czekania");
}catch (IOException ex)
{
Logger.getLogger(ImageViewer.class.getName()).log(Level.SEVERE, null, ex);
}catch (InterruptedException ex2)
{
System.out.println("Interrupted");
}
}
} catch(NumberFormatException nfe)
{
JOptionPane.showMessageDialog(null,
"czas musi byc liczba",
"Blad",
JOptionPane.ERROR_MESSAGE);
}
break;