Verfügbare Informationen zu "Pumi4"
Qualität des Beitrags: Beteiligte Poster: Florian Forenurl: Klick aus dem Unterforum: PUM - Tutorien Antworten: 1 Forum gestartet am: Samstag 11.11.2006 Sprache: deutsch Link zum Originaltopic: Pumi4 Letzte Antwort: vor 16 Jahren, 3 Monaten, 17 Tagen, 1 Stunde, 52 Minuten
Alle Beiträge und Antworten zu "Pumi4"
Re: Pumi4
Florian - 10.12.2006, 14:27Pumi4
Hier nun der neueste Streich ...
Hierbei handelt es sich nur um die Components darstellung da nur diese bearbeitet werden sollte ... :lol:
package ÜB;
import java.awt.Graphics;
import java.awt.image.BufferedImage;
import java.io.File;
import java.io.IOException;
import javax.imageio.ImageIO;
import javax.swing.JComponent;
import java.awt.Color;
import java.awt.*;
import java.net.*;
/**
* Diese Klasse beschreibt das Zeichenpanel.
* Sie erbt von JComponent so das man sie leicht in einen JFrame integrieren
* kann. Ihr sollt nun im wesentlichen die Methode "JComponent.paint(Graphics)"
* überschreiben.
*
* @author Christian Wasserthal, Lars Stockmann, [your name here :)]
*/
public class GraphicsComponent extends JComponent{
// Diese Variable könnt ihr erstmal ignorieren.
private static final long serialVersionUID = 1L;
public final String STR_IMAGE_LOCAL = "C:/Dagons REICH/Universität/EAD I/Eclipse Workspace/my_picture.png";
public final String STR_IMAGE_URL = "http://www.gnu.org/graphics/gnu-head-banner.png";
public final String STR_IMAGE_URL2 = "http://abutalib.indysla.iupui.edu/~asimmon/images/smile.jpg";
BufferedImage Picture1;
BufferedImage Picture2;
BufferedImage Picture3;
public GraphicsComponent(){
// Wenn ihr globale Variablen für eure Animation braucht oder Bilder
// laden wollt, solltet ihr das hier tun, damit es nicht bei jedem
// repaint neu geladen werden muss.
Picture1 = loadOnlineImage(STR_IMAGE_URL2);
Picture2 = loadOnlineImage(STR_IMAGE_URL);
Picture3 = loadLocalImage(STR_IMAGE_LOCAL);
}
@Override public void paint(Graphics g){
// Die folgende Zeile ruft die überschriebene Methode auf. Das ist in
// den meisten Fällen Empfehlenswert. In diesem Fall sorgt es zum
// Beispiel dafür, dass die Hintergrundfarbe eurer JComponent sich dem
// Look and Feel (Theme) des Frames anpasst.
super.paint(g);
/* TODO
* Benutze das Grapphics Objekt g und zeichne mindestens eine Linie, einen
* Kreis.
*/
g.setColor(Color.BLACK);
g.drawLine(20, 20, 200, 150);
g.drawLine(230,150,410,20);
g.drawOval(90, 100, 40, 40);
g.drawOval(300, 100, 40, 40);
g.drawOval(185, 170, 60, 60);
g.drawLine(80, 260, 350, 260);
//g.drawImage(this.Picture1, 170, 270, 100, 100, this);
//g.drawImage(this.Picture2, 170, 370, 100, 100, this);
g.drawImage(this.Picture3, 170, 20, 100, 100, this);
/* TODO
* Zeichne ein Bild aus dem Internet (z.B. STR_IMAGE_URL).
* Implementiere dazu (in Anlehnung an "loadLocalImage(String)") eine
* Methode zum laden von Bildern aus dem Internet.
*/
}
/**
* Diese Methode lädt ein Bild (BufferedImage) aus einer lokalen Datei.
* Beim lesen von Dateien können die verschiedensten Fehler auftreten. Die
* Datei könnte nicht existieren oder sie existiert aber eigentlich ist es
* ein Ordner. Oder ihr habt keine Zugriffsrechte auf die Datei. All diese
* Fehler lassen sich unter dem Begriff IOException (Ein-Ausgabe-Ausnahme)
* zusammenfassen.
* Tritt ein solcher Fehler in einer Methode (z.B. "ImageIO.read(File)")
* auf, so wird die Abarbeitung gestoppt, und eine IOException geworfen.
* Wenn diese nicht aufgefangen wird, so würde auch die Methode in der
* "ImageIO.read(File)" aufgerufen wurde den Fehler propagieren.
* Das ist aber hier nicht erwünscht. Darum fangen wir die Exception mit
* "catch" ab und führen eine Ausnahmebehandlung durch.
* Wenn in dem "try" Bereich keine IOExcpetion geworfen wird, wird der
* "catch"-Block nicht ausgeführt.
*
* @param filename Bezeichnet den Dateinamen (samt Pfad) des zu ladenden
* Bildes.
* @return Ein BufferedImage.
*/
private BufferedImage loadLocalImage(String filename){
try{
return ImageIO.read(new File(filename));
}
catch(IOException e){
System.err.println("Fehler beim laden des lokalen Bildes "
+ filename + ": "+e.getMessage());
return null;
}
}
/**
* Diese Methode wird von dem Button "Single Step" oder dem Timer
* aufgerufen, der mit "Start Animation" aktiviert wird.
*/
public void animate(){
/* TODO (für überflieger)
*
* Wenn ihr auf "Single Step" oder "Start Animation" klickt, wird jedes
* mal bevor neu gezeichnet wird diese Methode aufgerufen. Diese
* Tatsache könnt ihr benutzen um eine kleine Animation zu realisieren.
*/
}
private BufferedImage loadOnlineImage(String filename){
URL url=null;
try{
url=new URL (filename);
}
catch(IOException e) {System.out.println("Ungültige URL");}
try{
return ImageIO.read(url);
}
catch(IOException e){
System.err.println("Fehler beim laden des lokalen Bildes "
+ filename + ": "+e.getMessage());
return null;
}
}
}
Mit folgendem Code, können Sie den Beitrag ganz bequem auf ihrer Homepage verlinken
Weitere Beiträge aus dem Forum Untitled
Pumi3 - gepostet von David am Dienstag 21.11.2006
ENDLICH EIN FORUM - gepostet von David am Dienstag 14.11.2006
Ähnliche Beiträge wie "Pumi4"
