eps.fortgeschritteneGrafik
Class Bild

java.lang.Object
  extended by eps.fortgeschritteneGrafik.interna.Grafik
      extended by eps.fortgeschritteneGrafik.Bild

public class Bild
extends Grafik

Objekte der Klasse Bild stellen einige einfache Dienste zum Darstellen von Dateien des Typs jpg, png, gif... auf dem Zeichenfenster bereit. Die Bilder muessen im Unterordner "Bilder" liegen. Dieser muss sich im Verzeichnis befinden, indem auch die Datei Bild.java (genauer: die Datei Bild.class) liegt. Es muss dort mindestens das Standardbild Tulpe.png vorhanden sein. Versucht der Nutzer eines erfolgreich erzeugten Bildobjekts, einen dateinamen zu setzen, der im Unterordner nicht vorhanden ist, dann gibt es eine kurze freundliche Fehlermeldung auf der Konsole und der Zustand des Bildobjekts aendert sich nicht.

Version:
02.2008
Author:
Florian Prager, Universitaet Passau

Field Summary
 
Fields inherited from class eps.fortgeschritteneGrafik.interna.Grafik
standardBreite, standardHoehe
 
Constructor Summary
Bild()
          Es wird ein neues Bildobjekt mit den Standardeinstellungen auf dem Standardfenster erzeugt.
Bild(boolean anmelden, Zeichenfenster fenster)
          Es wird ein neues Bild mit den Standardeinstellungen erzeugt.
Bild(Zeichenfenster fenster)
          Es wird ein neues Bildobjekt mit den Standardeinstellungen erzeugt.
 
Method Summary
static String[] bilderGeben()
          Der Dienst gibt eine Aufzaehlung aller Dateien im Bilder-Unterverzeichnis zurueck.
 String dateinameGeben()
           
 void dateinameSetzen(String neuerDateiname)
          Eine neue Bilddatei kann gewaehlt werden.
 void groesseSetzen(int neueBreite, int neueHoehe)
          Breite und Hoehe der Grafik koennen gewaehlt werden.
 String toString()
          Unsere einfache "Visitenkarte": unser Klassenname gefolgt von interessanten Attributwerten
protected  void zeichnenAuf(Graphics2D zeichnung)
          Technische Methode, die Zeichenfensterobjekte nutzen.
 
Methods inherited from class eps.fortgeschritteneGrafik.interna.Grafik
abmelden, anmelden, breiteGeben, drehenUm, equals, fensterGeben, hoeheGeben, positionSetzen, streckenAn, transformationenGeben, verschieben, xPositionGeben, yPositionGeben
 
Methods inherited from class java.lang.Object
clone, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Constructor Detail

Bild

public Bild()
Es wird ein neues Bildobjekt mit den Standardeinstellungen auf dem Standardfenster erzeugt.


Bild

public Bild(boolean anmelden,
            Zeichenfenster fenster)
Es wird ein neues Bild mit den Standardeinstellungen erzeugt. Dieses kann mit einem Zeichenfensterobjekt verbunden werden und dort sogleich angemeldet werden (-> in den Eingangsparameter anmelden true hineinfuellen) oder nicht (-> in den Eingangsparameter anmelden false hineinfuellen). Wird null in den Eingangsparameter fenster eingefuellt, so wird das Standardfenster verwendet.


Bild

public Bild(Zeichenfenster fenster)
Es wird ein neues Bildobjekt mit den Standardeinstellungen erzeugt. Aufpunkt: (0, 0) - linke obere Ecke des ueberdeckenden Rechtecks. Das Standardbild ist eine Tulpe, sie wird angezeigt. Das Bild wird an einem Zeichenfenster angemeldet. Wird null eingegeben, wird das Standardfenster verwendet. Bilder muessen im Unterordner "Bilder" liegen.

Method Detail

bilderGeben

public static String[] bilderGeben()
Der Dienst gibt eine Aufzaehlung aller Dateien im Bilder-Unterverzeichnis zurueck.


dateinameGeben

public String dateinameGeben()

dateinameSetzen

public void dateinameSetzen(String neuerDateiname)
Eine neue Bilddatei kann gewaehlt werden. Die Werte der Attribute breite und hoehe werden entsprechend der neuen Bilddatei angepasst. Die Bilddatei muss im Unterordner Bilder (relativ zum Ort der Datei "Bild.class" dieses Projekts) liegen. Es koennen die Formate png und jpg dargestellt werden. Der Unterordner "Bilder/" wird nach der Eingabe automatisch ergaenzt, er darf nicht mit angegeben werden. Der Dienst gibt ggf. Fehlermeldungen auf der Standardkonsole an den Benutzer aus. neuerDateiname - moegliche (Standard)Eingangswerte sind "Kirschen.png" oder "Tulpe.png". Achtung: Die neue Bilddatei wird in Orginalgroesse dargestellt! Die Werte der Attribute breite und hoehe werden entsprechend aktualisiert. Nur die Position (linke obere Ecke des achsenparallelen ueberdeckenden Rechtecks) bleibt erhalten. Alle bisherigen Drehungen, Streckungen (und Veraenderungen der Groesse via groesseSetzen) werden durch das Setzen eines neuen Dateinamens geloescht.


groesseSetzen

public void groesseSetzen(int neueBreite,
                          int neueHoehe)
Breite und Hoehe der Grafik koennen gewaehlt werden. Nicht positive (unsinnige) Angaben werden automatisch auf den kleinsten noch sinnvollen Wert fuer eine Grafik gesetzt, hier 1. Die Grafik ist dann entsprechend auf dem Zeichenfenster zu sehen. Bei einem vorher evt. aufgetretenen Bildfehler wird der Aufruf von groesseSetzen ignoriert (ein nicht existierende Bild kann auch nicht in der Groesse veraendert werden).

Overrides:
groesseSetzen in class Grafik

toString

public String toString()
Unsere einfache "Visitenkarte": unser Klassenname gefolgt von interessanten Attributwerten

Overrides:
toString in class Grafik

zeichnenAuf

protected void zeichnenAuf(Graphics2D zeichnung)
Technische Methode, die Zeichenfensterobjekte nutzen.

Specified by:
zeichnenAuf in class Grafik