Grafikdateien laden und anzeigen (Java): Unterschied zwischen den Versionen

Aus Byte-Welt Wiki
Zur Navigation springenZur Suche springen
(Applets)
(Applikationen)
Zeile 11: Zeile 11:
 
==Applikationen==
 
==Applikationen==
 
Toolkit#getImage()
 
Toolkit#getImage()
 +
 +
(Code-Beispiele folgen noch)
  
 
=Laden von Grafikdateien in Swing=
 
=Laden von Grafikdateien in Swing=

Version vom 12. März 2010, 22:29 Uhr

Baustelle.png Dieser Beitrag wird derzeit noch bearbeitet. Der Text ist deshalb unvollständig und kann Fehler oder ungeprüfte Aussagen enthalten.

Häufig möchte man aus verschiedenen Gründen Grafikdateien, wie Icons, Eyecatcher oder Fotos in Java-Programme einbinden. Im Folgenden soll anhand von Code-Beispielen gezeigt werden, wie unter verschiedenen Bedingungen und GUI-Schnittstellen (AWT/Swing) Grafiken eingebunden werden können.

Laden von Grafikdateien im AWT

Im AWT, welches die Standard-Schnittstelle für die Entwicklung grafischer Benutzeroberflächen bis zur Veröffentlichung von Java 1.2 war, wird das Einlesen von Grafikdaten in Applets und Applikationen unterschiedlich gehandhabt. Bis auf den gleichen Namen der benutzten Methode zum Einlesen, müssen hier verschiedene Konzepte angewendet werden.

Applets

Applet#getImage()

(Code-Beispiele folgen noch)

Applikationen

Toolkit#getImage()

(Code-Beispiele folgen noch)

Laden von Grafikdateien in Swing

In Swing haben die Java-Erfinder von Sun eine sehr leistungsfähige Klasse für das Einlesen von Grafikdaten aus unterschiedlichen Quellen entwickelt, die auch die Anwendung in Applets und Applikationen vereinheitlicht.

JApplets

In Swing-Applets kann für das effiziente Einlesen von Grafikdaten die Klasse javax.imageio.ImageIO verwendet werden.
Wie einfach ihre Benutzung ist, werden wir im Anschluss demonstrieren.

Einfache JApplet-Klassen

Direktes Zeichnen auf das JApplet: <code=java> import javax.swing.*; import javax.imageio.*; import java.awt.*; import java.net.*; import java.io.*;


public class PictureApplet extends JApplet {

  private Image image;
  public void init() {
     try {
        image = ImageIO.read(new URL(getCodeBase(), "Bild.jpg"));
     }
     catch(IllegalArgumentException iae) {

JOptionPane.showMessageDialog(this, "Grafikdatei nicht gefunden!");

     }
     catch(IOException ioe) {

JOptionPane.showMessageDialog(this, "Fehler beim Einlesen der Grafikdatei!");

     }
  }
  public void paint(Graphics g) {
     super.paint(g);
     if(image != null) {
        g.drawImage(image, 0, 0, this);
     }
  }

}</code=java>

Link: Einbinden von Applets in HTML-Dateien

Applets in Jar-Dateien

Wenn sich das Applet gemeinsam mit der zu ladenden Grafik in einer Jar-Datei zusammengefasst wurden, muss die Grafik über den ClassLoader ins Applet geladen werden.

Direktes Zeichnen auf das JApplet: <code=java> import javax.swing.*; import javax.imageio.*; import java.awt.*; import java.net.*; import java.io.*;


public class PictureApplet extends JApplet {

  private Image image;
  public void init() {
     try {
        image = ImageIO.read(getClass().getResource("Bild.jpg"));
     }
     catch(IllegalArgumentException iae) {

JOptionPane.showMessageDialog(this, "Grafikdatei nicht gefunden!");

     }
     catch(IOException ioe) {

JOptionPane.showMessageDialog(this, "Fehler beim Einlesen der Grafikdatei!");

     }
  }
  public void paint(Graphics g) {
     super.paint(g);
     if(image != null) {
        g.drawImage(image, 0, 0, this);
     }
  }

}</code=java>

Das Applet-Tag in der HTML-Datei muss jetzt angepasst werden, damit der Browser weiß, wo sich das Applet befindet.
Link: Applet-Tag für Jar-Dateien

Swing-Applikationen