Java - przeglądarka zdjęć

0

Witam!
Mam za zadanie zrobić przeglądarkę zdjęć.
Na starcie użytkownik podaję czas w sekundach przez jaki będzie wyświetlało się kolejne zdjęcie. Po upływie czasu program automatycznie otwiera kolejne a po zakończeniu wyświetlania wszystkich obrazków w oknie ukazuje się napis "Koniec prezentacji". Jeśli obrazka nie udąło się załadować (brak lub błąd) w oknie wyświetlany jest napis "Brak obrazka". Chodzi również aby Dane (katalog, czas wyświetlania jednego obrazka)były podane jako argument programu.

Sytuacja wygląda tak, że obecnie stworzyłem szkielet - program który wyświetla obrazek, doskalowywuje go do wielkości okna a w przypadku braku zdjęcia wyświetla komunikat "Brak obrazka"

**Potrzebuje jednak pomocy z częścią dotyczącą wyświetlania kolejnych zdjęć i podaniem czasu wyświetlania na początku jako argumentu. Również nie do końca wiem jak zrobić aby katalog ze zdjęciami był podawany jako argument programu.
**
Mój kod obecnie wygląda tak:

package Przegladarka;


import javax.swing.*;
import java.awt.*;

class ImagePanel extends JPanel {

  Image img;
  boolean loaded = false; 

  public ImagePanel(String imgFileName) {
	  
    loadImage(imgFileName);
    
  }

  public void paintComponent(Graphics g) {
	  
    super.paintComponent(g);
    if (img != null && loaded)
      g.drawImage(img, 0, 0, getWidth(), getHeight(), this);
    else
      g.drawString("Brak obrazka", 10, getHeight() - 10);
    
  }

  private void loadImage(String imgFileName) {
	  
    img = Toolkit.getDefaultToolkit().getImage(imgFileName);
    MediaTracker mt = new MediaTracker(this);
    mt.addImage(img, 1);
    try {
    	
      mt.waitForID(1);
    } catch (InterruptedException exc) {
    	
    }
    
    int w = img.getWidth(this); 
    int h = img.getHeight(this);
    if (w != -1 && w != 0 && h != -1 && h != 0) {
      loaded = true;
      setPreferredSize(new Dimension(w, h));
    } else
      setPreferredSize(new Dimension(200, 200));
  }

}

public class ImagePanelTest extends JFrame {

  public ImagePanelTest(String fname) {
    ImagePanel p = new ImagePanel(fname);
    add(p);
    pack();
    setLocationRelativeTo(null);
    setVisible(true);
    
  }

  public static void main(String args[]) {
	  
    new ImagePanelTest("morze.jpg"); 
  }
}

Z góry dziękuje za pomoc i wskazówki!!!

1

Jeśli używasz eclipse to dajesz run configurations, przechodzisz na zakładkę "Arguments" i w polu "program arguments" podajesz argumenty czyli czas i ścieżkę.
Następnie w metodzie main z klasy której startujesz możesz pobrać te dane z tablicy "args" która jest przekazywana do metody main:

String time = args[0];
String path = args[1];

A potem możesz z tego korzystać do dalszej pracy.

Ps. A co do drugiego to zrób sobie jakiś timer który będzie liczył czas.
Możesz np wykorzystać schedule do wywoływania zmiany zdjęcia automatycznie:
http://www.tutorialspoint.com/java/util/timer_schedule_period.htm
http://stackoverflow.com/questions/4044729/java-timer-task-schedule

1 użytkowników online, w tym zalogowanych: 0, gości: 1