
Od jakiegoś czasu zacząłem przygodę z Java (ale nadal jestem początkujący więc fajnie jeśli mnie nie zmieszacie z błotem) i teraz pracuję nad appletem który chciałbym później umieścić na stronie parafialnej.
Założenia appletu:
- wczytuje kilka parametrów z html: plik z listą zdjęć do wyświetlenia, katalog z tymi zdjęciami, kolor tła apletu //wczytywanie z parametrów rozwiązane
- po kliknięciu w dowolnym miejscu apletu wyświetlenie kolejnego zdjęcia //NIE ROZWIĄZANE
Moje rozwiązanie:
- wykonałem aplikację która tworzy mi plik z listą zdjęć
- listę zapisuję w ArrayList<String> i stąd pobieram nazwy wyświetlanych zdjęć po kliknięciu
Moje źródło:
Kod: Zaznacz cały
import java.applet.Applet;
import java.awt.*;
import java.awt.event.*;
import java.awt.image.BufferedImage;
import java.io.*;
import java.util.*;
public class ImageApp extends Applet implements MouseListener {
/**
*
*/
private static final long serialVersionUID = 1L;
public ArrayList<String> images = new ArrayList<String>();
public BufferedReader inputFile;
public FileReader fReader;
public BufferedImage aktualnyObraz;
public int aktualnyNumerObrazka;
public int iloscObrazkow;
public String directory, file;
public void init() {
//wczytanie nazwy pliku z listą
if ((file=getParameter("file"))==null) {
System.out.println("Nie wczytano pliku");
file="ImageList.txt";
}
//wczytanie nazwy katalogu ze zdjęciami
if ((directory=getParameter("dir"))==null) {
System.out.println("Nie wczytano katalogu");
directory="balwanek";
}
//zmiana koloru tła
int colorR = Integer.parseInt(getParameter("colorR"));
int colorG = Integer.parseInt(getParameter("colorG"));
int colorB = Integer.parseInt(getParameter("colorB"));
Color bgc = new Color(colorR, colorG, colorB);
setBackground(bgc);
//inicjalizacja pliku z listą zdjęć
if ((file=getParameter("file"))==null) {
System.out.println("Nie wczytano nazwy pliku");
file="ImageList.txt";
}
//dodajemy linijki z pliku txt do tablicy
try {
BufferedReader inputFile = new BufferedReader(new FileReader(file));
String line = "";
while (true) {
line = inputFile.readLine();
if (line == null)
break;
imagesTable.add(line);
}
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
iloscObrazkow = images.size();
aktualnyNumerObrazka = 0;
//wywołanie metoda co wczytuje aktualnyObraz
aktualnyObraz = wczytajObrazek(images.get(aktualnyNumerObrazka));
//paint();
}
public void paint(Graphics g) {
int imgWidth = aktualnyObraz.getWidth(this);
int imgHeight = aktualnyObraz.getHeight(this);
int x = (getWidth()-imgWidth)/2;
int y = ((getHeight()-imgHeight)/2)-20;
g.drawRoundRect(5, 5, getSize().width-10, getSize().height-10, 15, 15) ;
g.drawImage(aktualnyObraz, x, y, this);
}
public BufferedImage wczytajObrazek(String url) {
return (BufferedImage) getImage(getCodeBase(), url);
}
public void wczytajNastepnyObrazek()
{
if (aktualnyNumerObrazka == iloscObrazkow - 1)
{
aktualnyNumerObrazka = 0;
}
else
{
aktualnyNumerObrazka++;
}
String url = directory + File.separator + images.get(aktualnyNumerObrazka);
BufferedImage aktualnyObrazek = wczytajObrazek(url);
repaint();
}
public void mouseClicked(MouseEvent arg0) {
wczytajNastepnyObrazek();
}
@Override
public void mouseEntered(MouseEvent arg0) {
// TODO Auto-generated method stub
}
@Override
public void mouseExited(MouseEvent arg0) {
// TODO Auto-generated method stub
}
@Override
public void mousePressed(MouseEvent arg0) {
// TODO Auto-generated method stub
}
@Override
public void mouseReleased(MouseEvent arg0) {
// TODO Auto-generated method stub
}
}