Instanzen von abstrakten Klassen?

Status
Nicht offen für weitere Antworten.

Toasterwilli

Aktives Mitglied
Man kann doch von abstrakten Klassen keine Objekte erzeugen, richtig?
Aber warum funktioniert folgendes (aus Java ist auch eine Insel):


Code:
...
image = Toolkit.getDefaultToolkit().getImage( file.getAbsolutePath() );
...

???

Ist das damit geladene Bild dann in Wirklichkeit ein BufferedImage oder so? Aber warum gibt dann

Code:
BufferedImage buffim = (BufferedImage) mage;

eine ClassCastException?
 
B

Beni

Gast
Es gibt noch andere Images ausser BufferedImage :wink:
Aber ja, hinter dem "Image" verbirgt sich irgendeine abgeleitete Klasse.

P.S. guck dir mal den Wert von "image.getClass().getName()" an, das ist die Klasse, die wirklich instantiiert wurde.
 

Toasterwilli

Aktives Mitglied
Aha, es ist also ein

Code:
sun.awt.windows.WImage

soso, aber wo gibts da bitte ne API dazu? Auf java.sun.com/j2se/1.4.2/docs/api/ find ich dazu nix...

Naja, eigentlich ist es mir auch egal, ich hatte nur vorhin ein Problem mit dem laden eines BufferedImage und bin dabei vom hundertsten ins tausendste gekommen... :roll:
 
B

Beni

Gast
Lass die Finger von allem was in den "sun"-packages liegt. Das Zeugs dort drin ist für jede Version und Ausführung der JVM wieder anders :wink:

Lade doch über die Klasse ImageIO, die "read"-Methoden liefern alle ein BufferedImage.
 

Toasterwilli

Aktives Mitglied
Ja, das hab ich auch nicht mehr weiterverfolgt. Ich wollte jetzt eben genau mit

Code:
BufferedImage image = ImageIO.read(new FileInputStream("Anna.jpg"));

ein Bild laden, das ich in Eclipse in den Workspace eingebunden hab. Jetzt kommt aber eine FileNotFoundException...
Das Bild liegt aber im selben Package wie die entsprechende Klasse.

:bahnhof:


PS: auf Groß- und Kleinschreibung hab ich auch geachtet, falls das ein Problem sein sollte....
 

byte

Top Contributor
afaik muss das bild im root des projects liegen, oder anders gesagt im user.dir. aber warum gibst du nicht gleich den absoluten pfad mit an? dann bist du offener und kannst später auch bilder in einem beliebigem verzeichnis einlesen.
 

Toasterwilli

Aktives Mitglied
Ok, jetzt hab ich das Bild ins Root vom Project - danke es funktioniert!

Meinst du, ich könnte stattdessen auch so schreiben:

Code:
BufferedImage image = ImageIO.read(new FileInputStream("c:/.../Eigene Dateien/Anna.jpg"));


Obwohl ich im Moment auch schon damit zufrieden bin, dass er überhaupt das Bild findet. Ich bin sowieso noch in der Rumprobier-Phase..
 

byte

Top Contributor
jup genau. aber noch schöner wäre es wenn du es z.b. so machst:

Code:
String imgPath = "C:/.../Eigene Dateien/Anna.jpg";

.
.
.

BufferedImage image = ImageIO.read(new FileInputStream(imgPath));


es ist immer übersichtlicher wenn du dir solche dinge an ner zentralen stelle definierst und dann im programmcode nur noch auf die variablen zugreifst. du ersparst dir ne menge arbeit, sollte sich später etwas an den werten ändern.
 

Toasterwilli

Aktives Mitglied
Dankeschön. Ich hätt da gleich noch ne Frage:

Wie kann ich denn das Bild an einer anderen Stelle wieder abspeichern? Ich hab mal das folgende probiert:

Code:
 ImageIO.write(image, "jpg", new File("output.jpg"));

also seit ich das Programm vor ca. 5 Minuten gestartet hab, läuft es immernoch so vor sich hin, es hat zumindest schon eine leere Datei mit diesem Namen angelegt, aber ansonsten tut sich nicht viel.
 

Sky

Top Contributor
Toasterwilli hat gesagt.:
Dankeschön. Ich hätt da gleich noch ne Frage:

Wie kann ich denn das Bild an einer anderen Stelle wieder abspeichern? Ich hab mal das folgende probiert:

Code:
 ImageIO.write(image, "jpg", new File("output.jpg"));

also seit ich das Programm vor ca. 5 Minuten gestartet hab, läuft es immernoch so vor sich hin, es hat zumindest schon eine leere Datei mit diesem Namen angelegt, aber ansonsten tut sich nicht viel.
Was steht denn in deinem catch-Block ?
 

byte

Top Contributor
sieht ansich richtig aus. kann mir kaum vorstellen, dass dein programm seit 5 minuten läuft. an der zeile liegt es sicherlich nicht. da muss an anderer stelle etwas schiefgelaufen sein.
 

Toasterwilli

Aktives Mitglied
es sieht folgendermaßen aus:

Code:
try{
                    ImageIO.write(image, "JPEG", new File("output.jpg"));
                } catch(IOException a){System.out.println(a);}

aber er schmeißt ja keine Exception, sondern rattert fröhlich vor sich hin. Ich hab das Programm nach einigen Minuten per Hand gestoppt. Das ursprüngliche jpg-File hat nur 43kb, also falls er was sinnvolles gemacht hätte, dann müßte er doch schon längst fertig sein.
 

byte

Top Contributor
änder die zeile mal zu:

Code:
System.out.println(ImageIO.write(image, "jpg", new File("output.jpg")));

gibt er true oder false aus?
 

Toasterwilli

Aktives Mitglied
oh Schande über mich! Er gibt

Code:
true
true
true
..

aus. Ich hatte ne Schleife in meinem Programm und das 'write(...)' ausversehen ins Schleifenende geschrieben anstatt ganz dahinter....

:oops: :oops:

Jetzt paßt alles. Und nochmal vielen Dank für die Hilfe!
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
J Klassen Instanzen einer Klasse in einer anderen unabhängigen Klasse nutzen Java Basics - Anfänger-Themen 4
G zwei Instanzen einer Klasse Java Basics - Anfänger-Themen 29
C Was machen mit nicht mehr verwendeten Instanzen ? Java Basics - Anfänger-Themen 18
C Instanzen, wann muss ich Instanzen erzeugen & wo?) Java Basics - Anfänger-Themen 23
A Klassen Zugriff auf Instanzen Java Basics - Anfänger-Themen 2
F Mehrere Instanzen der Klasse A EINER Instanz der Klasse B übergeben Java Basics - Anfänger-Themen 3
M Alle Instanzen einer Klasse ansprechen Java Basics - Anfänger-Themen 4
H Erste Schritte JTree: Instanzen einer Klasse speichern oder Namen/Strings... Java Basics - Anfänger-Themen 4
B OOP Summe aus verschiedenen Instanzen einer Klasse berechnen Java Basics - Anfänger-Themen 2
Z Was habe ich davon mit einem Datentyp verschiedene Instanzen zu haben? Java Basics - Anfänger-Themen 6
Q OOP Mehrere Instanzen auf ein Feld Java Basics - Anfänger-Themen 13
G Instanzen eines Interfaces erzeugen Java Basics - Anfänger-Themen 7
S Direkt Instanzen anlegen Java Basics - Anfänger-Themen 1
K Variablen Instanzen gleich aber warum ? Java Basics - Anfänger-Themen 3
D Instanzen durch Methode Java Basics - Anfänger-Themen 14
W Zugriff auf Instanzen von Klassen Java Basics - Anfänger-Themen 8
S aus Text Datei Instanzen erzeugen, so richtig? Java Basics - Anfänger-Themen 4
O Liste aller Instanzen einer Klasse Java Basics - Anfänger-Themen 18
H Klassen Instanzen mit anderen Klassen erzeugen Java Basics - Anfänger-Themen 5
C Referenzen zu Instanzen einer Klasse im Array Java Basics - Anfänger-Themen 8
B Enum: Instanzen Java Basics - Anfänger-Themen 10
M Instanzen vergleichen? Java Basics - Anfänger-Themen 12
H Klassen, Konstruktoren, Instanzen etc Java Basics - Anfänger-Themen 6
W Instanzen, Klassen Java Basics - Anfänger-Themen 2
C Vectorarrays und Instanzen Java Basics - Anfänger-Themen 10
S alle instanzen einer klasse löschen Java Basics - Anfänger-Themen 18
C OOP Instanzen ansprechen Java Basics - Anfänger-Themen 3
P Verständnisfrage zu Instanzen/Objekten Java Basics - Anfänger-Themen 9
B Zugriff auf Variablen in nicht bekannten Instanzen Java Basics - Anfänger-Themen 6
R mit klassen-instanzen arbeiten in packages Java Basics - Anfänger-Themen 10
M Instanzen, Referenzen und Collections Java Basics - Anfänger-Themen 3
A Mehrere Instanzen einer eigenen Klasse in einem Array Java Basics - Anfänger-Themen 5
W mehrere (numerierte) Instanzen erzeugen Java Basics - Anfänger-Themen 3
M Dynamisch Instanzen erstellen. Java Basics - Anfänger-Themen 4
N Instanzen von beliebigen Klassen aus dem Filesystem erzeugen Java Basics - Anfänger-Themen 7
M Problem mit Instanzen von JLabel Java Basics - Anfänger-Themen 4
E Vermeiden,dass mehrere Instanzen eines Java-Programms laufen Java Basics - Anfänger-Themen 2
V mehrere Instanzen gleicher Name möglich? Java Basics - Anfänger-Themen 3
E instanzen von Klassen erzeugen Java Basics - Anfänger-Themen 2
H Instanzen erzeugen und Methoden aufrufen Java Basics - Anfänger-Themen 5
L verschiedene JPanel-Instanzen erstellen Java Basics - Anfänger-Themen 8
K Eindeutige Instanzen von einem Objekt Java Basics - Anfänger-Themen 13
T Wo Daten ablegen für mehrere Servlet-Instanzen? Java Basics - Anfänger-Themen 2
G Instanzen in einem Feld erzeugen Java Basics - Anfänger-Themen 9
J Instanzen dynamisch erzeugen Java Basics - Anfänger-Themen 8
D Instanzen einer Klasse Java Basics - Anfänger-Themen 6
G Speicherung von Referenzen auf Instanzen Java Basics - Anfänger-Themen 5
G alle Instanzen einer Klasse serialisieren Java Basics - Anfänger-Themen 4
Silver-Blue mehrere Instanzen einer Klasse, trotz Random immer das Selbe Java Basics - Anfänger-Themen 7
W Instanzen herunterzählen Java Basics - Anfänger-Themen 7
G Instanzen und Referenzen Java Basics - Anfänger-Themen 5
S Instanzen Java Basics - Anfänger-Themen 4
G wenn auch schon oft gefragt (Konstruktor , Instanzen , usw) Java Basics - Anfänger-Themen 6
W Nochmal das Decorator - Mit der abstrakten Klasse möglich? Java Basics - Anfänger-Themen 10
U Funktionale Interfaces mit mehreren abstrakten Methoden? Java Basics - Anfänger-Themen 8
L Klassen Kann eine Unterklasse einer abstrakten Klasse ein Interface implementieren? Java Basics - Anfänger-Themen 2
M Methoden Overloading in abstrakten Klassen Java Basics - Anfänger-Themen 26
F Probleme mit privaten Klassen (abstrakten Klassen) Java Basics - Anfänger-Themen 1
P OOP Sinn von abstrakten Klassen Java Basics - Anfänger-Themen 2
B in einem abstrakten Set ,Elemente einer einfache verkettete List epeichern Java Basics - Anfänger-Themen 13
G Methode einer Abstrakten Klasse aufrufen Java Basics - Anfänger-Themen 1
C Konstruktor in Abstrakten Klassen Java Basics - Anfänger-Themen 4
O Javadoc bei abstrakten Methoden Java Basics - Anfänger-Themen 1
M Frage zu Generics in Klassen, Abstrakten Klassen und Interfaces Java Basics - Anfänger-Themen 5
G Auf einen bestimmten Konstruktor in der abstrakten Superklasse zugreifen? Java Basics - Anfänger-Themen 2
T Interface implementieren mit Abstrakten Typen? Java Basics - Anfänger-Themen 4
F Interface Unterschied von Attributen und Methoden bei abstrakten Klassen und Interfaces Java Basics - Anfänger-Themen 5
T fenster schliesen und mouse events in einer nicht abstrakten klasse Java Basics - Anfänger-Themen 6
Corben Methoden Methode einer Abstrakten Klasse Java Basics - Anfänger-Themen 7
A Deklarationen in abstrakten Klassen und Interfaces Java Basics - Anfänger-Themen 11
N finale Attribute in abstrakten Basisklassen Java Basics - Anfänger-Themen 6
T Frage zu Interfaces und Abstrakten Klassen Java Basics - Anfänger-Themen 4
Spin Eigenen Abstrakten Datentypen Java Basics - Anfänger-Themen 28
A Verwendung von abstrakten Klassen Java Basics - Anfänger-Themen 17
X Problem: Erben von einer abstrakten Klasse Java Basics - Anfänger-Themen 4
I [Java] Umgang mit abstrakten Klassen, Interfaceklassen (BSP) Java Basics - Anfänger-Themen 12
M Frage zu einer abstrakten Klasse Java Basics - Anfänger-Themen 16
N variablen vom typ einer abstrakten Klasse Java Basics - Anfänger-Themen 5
M instanzieren einer abstrakten Klasse? Java Basics - Anfänger-Themen 2
A Objekte von abstrakten Klassen? Java Basics - Anfänger-Themen 6
M Rückgabetype Unterklasse von einer abstrakten Klasse Java Basics - Anfänger-Themen 3
V Verständnisproblem mit Abstrakten zu Konkreten Klassen Java Basics - Anfänger-Themen 7
S Field einer abstrakten Klasse wird nicht gesetzt Java Basics - Anfänger-Themen 2
S Objektrückgabe durch Factory-Methode in abstrakten Klassen Java Basics - Anfänger-Themen 4
D Initialisierung von Klassen-Objekte Java Basics - Anfänger-Themen 47
J Methodenaufrufe abstrakte Klassen, Interfaces Java Basics - Anfänger-Themen 17
M Abstrakte Klassen - Notation Java Basics - Anfänger-Themen 9
Detlef Bosau Nachladen von Klassen zur Laufzeit Java Basics - Anfänger-Themen 24
M Anonyme Klassen - Warum wird in der Konsole nichts ausgegeben? Java Basics - Anfänger-Themen 1
MoxMorris Einige Methoden aus verschiedenen Klassen nacheinander auszuführen läuft seltsam Java Basics - Anfänger-Themen 2
I Klassen von einem package laden, Statisches Feld auslesen und Objekt erstellen Java Basics - Anfänger-Themen 8
I 2 verschiedene Klassen mit gleichen Property vergleichen Java Basics - Anfänger-Themen 13
C Array von Klassen Java Basics - Anfänger-Themen 2
monsterherz 2 Klassen daher Probs mit dem Dateinamen Java Basics - Anfänger-Themen 9
C Kommunikation zwischen 2 Klassen Java Basics - Anfänger-Themen 9
I JPA Query für mehrere Klassen Java Basics - Anfänger-Themen 3
I @Entity Klassen, Service Beans etc. aus einem Share Projekt beziehen? Java Basics - Anfänger-Themen 26
S IntelliJ geht alle Klassen durch Java Basics - Anfänger-Themen 9
I Gleiche Klassen und Methoden in unterschiedlichen Projekten nutzen Java Basics - Anfänger-Themen 2
T variablen klassen übergreifend Java Basics - Anfänger-Themen 12

Ähnliche Java Themen

Neue Themen


Oben