Grafikdateien laden und anzeigen (Java): Unterschied zwischen den Versionen
Zeile 1: | Zeile 1: | ||
{{In Arbeit}} | {{In Arbeit}} | ||
+ | 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 gezeicgt werden, wie unter verschiedenen Bedingungen und GUI-Schnittstellen (AWT/Swing) Grafiken eingebunden werden können. | ||
=Grafikdateien im AWT= | =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== | ==Applets== | ||
+ | Applet#getImage() | ||
==Applikationen== | ==Applikationen== | ||
+ | Toolkit#getImage() | ||
+ | |||
=Grafikdateien in Swing= | =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== | ==JApplets== | ||
− | ===Einfache | + | In Swing-Applets kann für das effiziente Einlesen von Grafikdaten die Klasse javax.imageio.ImageIO verwendet werden.<br> |
+ | 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=== | ===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== | ==Swing-Applikationen== | ||
[[Kategorie:Java]] | [[Kategorie:Java]] |
Version vom 14. Februar 2010, 17:21 Uhr
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 gezeicgt werden, wie unter verschiedenen Bedingungen und GUI-Schnittstellen (AWT/Swing) Grafiken eingebunden werden können.
Inhaltsverzeichnis
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()
Applikationen
Toolkit#getImage()
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