Java (laboratorium)

zadanie nr 8

W pakiecie roznosci.zdjecia zdefiniuj aplet, który będzie przyjazną przeglądarką zdjęć. Aplet napisz w technologii Swing (zdefiniowany przez Ciebie aplet ma dziedziczyć po javax.swing.JApplet).

    public class Przegladarka extends JApplet
    {
        // ...
    }

Wygląd apletu ma przyjąć postać dużego okna dialogowego, gdzie w centralnej części będzie się znajdował JScrollPane zawierający zdjęcie (środek tego obiektu powinien się początkowo pokrywać ze środkiem zdjęcia). Nad zdjęciem powinien się wyświetlać jego opis, a pod nim powinny się znajdować przyciski do poruszania się po liście zdjęć (pierwsze, poprzednie, następne i ostatnie).

Dodatkowo aplet ma być wyposażony w listę wszystkich zdjęć (obiekt klasy JList). Wyświetlane zdjęcie ma być na liście zawsze widoczne i zaznaczone. Po najechaniu myszką na dany element listy powinna się wyświetlać podpowiedź z opisem zdjęcia, a po kliknięciu na wybranym elemencie należy wyświetlić nowe zdjęcie. Oprócz tego, w aplecie powinna być zaimplementowana możliwość zautomatyzowania przeglądania: po wystartowaniu automatu (obiekt klasy Timer) zdjęcia powinny się same przeładowywać co pewien czas (kierunek przeglądania określ za pomocą obiektu klasy JCheckBox, a prędkość za pomocą obiektu klasy JScrollBar).

Kod apletu i pliki ze zdjęciammi powinny być spakowane w pliku .jar. Nazwy zdjęć i ich opisy przekaż do apletu za pomocą znaczników <param name="..."value="..."/>. Przykładowo:

    <applet
    code="Przegladarka.class"
    codebase="roznosci/zdjecia/"
    archive="zdjecia.jar, obrazki.jar"
    width="720" height="360">
        <param name="zakres" value="10" />
        <param name="2" value="obrazki/ja.gif" />
        <param name="2.opis" value="kiedy pracuję przy komputerze" />
        <param name="5" value="obrazki/ty.gif" />
        <param name="5.opis" value="kiedy naprawiasz komputer" />
        <param name="3" value="obrazki/on.gif" />
        <param name="7.opis" value="ten opis nie zostanie wykorzystany" />
        <param name="17" value="a to jest wartość spoza zakresu" />
    </applet>

Przyjmujemy (można to również sparametryzować), że obrazki są numerowane liczbami całkowitymi z zakresu od 0 do 999 (nie wszystkie kolejne liczby muszą być wykorzystane). Gdy z którymś obrazkiem nie ma skojarzonego opisu, to za jego opis przyjmujemy nazwę pliku.

Program należy opatrzeć stosownymi komentarzami dokumentacyjnymi i na końcu wygenerować dokumentację poleceniem javadoc. Na stronie html’owej z apletem umieść link do tej dokumentacji.

Paweł Rzechonek

Wrocław, 30 listopada 2004.