frage zu slideshow in java

Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

  • frage zu slideshow in java

    Hallo an alle,
    Hab da ein kleines Problem bei der Erstellung einer Slideshow für ein Mini-Software Projekt im Zuge unseres Studiums. Es geht um einen Online- Skitouren- Planer, wo zu jeder Tour ein paar Bilder angezeigt werden. Die Slideshow geht soweit, der Lektor hat uns nur noch ein paar zusätzliche Anforderungen gestellt (unterhalb vom Code als Kommentar)..Wär cool, wenn mir da jemand helfen könnte..
    mfg, stefan

    Quellcode

    1. import java.awt.*;
    2. import java.awt.event.*;
    3. import java.applet.*;
    4. @SuppressWarnings("serial")
    5. public class SlideShow extends Applet implements ActionListener {
    6. int numImages = 4;
    7. Button startButton;
    8. String msg = "";
    9. boolean display;
    10. MediaTracker mt;
    11. Image[] img = new Image[4];
    12. String[] imageNames = {
    13. "emu.jpg", "2.jpg", "3.jpg", "4.jpg"
    14. };
    15. public void init() {
    16. display = false;
    17. startButton = new Button("start");
    18. startButton.addActionListener(this);
    19. add(startButton);
    20. mt = new MediaTracker(this);
    21. for (int i = 0; i < numImages; ++i) {
    22. img[i] = getImage(getCodeBase(), imageNames[i]);
    23. mt.addImage(img[i], i);
    24. }
    25. try {
    26. mt.waitForAll();
    27. if (mt.isErrorAny()) {
    28. msg = "Error loading images";
    29. repaint();
    30. }
    31. } catch (InterruptedException ie) {}
    32. }
    33. public void paint(Graphics g) {
    34. if (display) {
    35. for (int i = 0; i < numImages; ++i) {
    36. g.drawImage(img[i], 40, 50, this);
    37. try {
    38. Thread.sleep(3000);
    39. } catch (InterruptedException ie) {}
    40. }
    41. }
    42. g.drawString(msg, 100, 400);
    43. }
    44. public void actionPerformed(ActionEvent ae) {
    45. display = true;
    46. repaint();
    47. }
    48. }
    49. // Datei auslesen und Anzahl der Bilder rausfinden
    50. // Bilder sollen aus bestimmten Dateien gelesen werden --> Dateiname ist Tourennummer also 1,2,...
    51. // Bilder sollen abgespeichert werden können, d.h. von einem Ordner der Festplatte in das richtige
    52. // Verzeichnis (also je nach Tournummer) verschoben werden.
    53. // Bidgröße auf annehmbares Format standardisieren
    Alles anzeigen
  • Datei auslesen und Anzahl der Bilder rausfinden
    Willst du vielleicht den Ordner auslesen? Das geht ganz einfach

    Quellcode

    1. File[] dir = new File(".").listFiles();
    2. int anzahl=0;
    3. for(File x : dir) {
    4. System.out.println(x.getName());
    5. i++;
    6. }


    Um Dateien zu kopieren, kannst du diesen Code nehmen:
    http://de.geocities.com/uweplonus/faq/io.html#dateiKopieren

    Quellcode

    1. public static void copyFile(File src, File dest, int bufSize,
    2. boolean force) throws IOException {
    3. if(dest.exists()) {
    4. if(force) {
    5. dest.delete();
    6. } else {
    7. throw new IOException(
    8. "Cannot overwrite existing file: " + destName);
    9. }
    10. }
    11. byte[] buffer = new byte[bufSize];
    12. int read = 0;
    13. InputStream in = null;
    14. OutputStream out = null;
    15. try {
    16. in = new FileInputStream(src);
    17. out = new FileOutputStream(dest);
    18. while(true) {
    19. read = in.read(buffer);
    20. if (read == -1) {
    21. //-1 bedeutet EOF
    22. break;
    23. }
    24. out.write(buffer, 0, read);
    25. }
    26. } finally {
    27. // Sicherstellen, dass die Streams auch
    28. // bei einem throw geschlossen werden.
    29. // Falls in null ist, ist out auch null!
    30. if (in != null) {
    31. //Falls tatsächlich in.close() und out.close()
    32. //Exceptions werfen, die jenige von 'out' geworfen wird.
    33. try {
    34. in.close();
    35. }
    36. finally {
    37. if (out != null) {
    38. out.close();
    39. }
    40. }
    41. }
    42. }
    43. }
    Alles anzeigen


    Fürs Umbenennen/Verschieben gibt es bereits eine betriebssystemunabhängige Funktion:
    http://www.galileocomputing.de/openbook/javainsel5/javainsel12_000.htm#Rxx747java12000040003DB1F03D1E5
    boolean renameTo( File d ) Benennt die Datei in den Namen um, der durch das File-Objekt d gegeben ist. Ging alles gut, wird true zurückgegeben. Bei zwei Dateinamen alt und neu benennt new File(alt).renameTo(new File(neu)); die Datei um.


    Wie du Bilder verkleinerst erfährst du hier:
    http://www.galileocomputing.de/openbook/javainsel5/javainsel14_008.htm#Rxx747java14008040004CF1F02225D

    Quellcode

    1. JPEGImageEncoder encoder = JPEGCodec.createJPEGEncoder( out );
    2. encoder.encode( img );