Ein Animationsfenster (mit Thread) und eine Testklasse kommunizieren über eine Kommunikationsklasse, die ein static Image Objekt beinhaltet.
Das Animationsfenster greift fortlaufend auf dieses Image Objekt zu und zeichnet das Bild in sein Fenster. Die Testklasse ladet verschiedene Bilder und übergibt sie der Kommunikationsklasse.
Nun habe ich das Problem, dass meine Testklasse sehr unsauber aussieht, da ich zum Laden eines Bildes ein unnützes Fenster erzeugen muss, damit ich auf das Toolkit zugreifen kann. Gibt es eine Möglichkeit ein Bild ohne einem AWT-Fenster zu laden?
Ich wollte euch fragen, ob mein Code ungefähr stimmt. Kompilieren lässt es sich. Ist es aber auch sauber programmiert? Und wie kann ich den MediaTracker hier anwenden, damit so lange gewartet wird, bis das Bild vollständig geladen wurde?
Code:
import javax.imageio.ImageIO;
import java.awt.*;
import java.io.*;
public class Test
{
public static void main(String[] args)
{
try{
Image img = ImageIO.read(new File("Bild.gif"));
}catch(IOException e){}
}
}
die solltest exceptions immer weiterverarbeiten. einen exceptino block leer zu lassen ist in den meisten fällen böse, außer die exception gehört zum programmfluss und man weiß dass sie auftreten wird und wenn sie ungefährlich ist, wie zum beispiel InterruptedException bei einem sleep
und wenn s um ein laden eines bildes geht soltle man wirklich eine nachricht ausspucken.
Gibt es eine Möglichkeit, dass ich mein BufferedImage auslese, die Farben jedes Pixels in einem Zahlenarray speicher und die Bilder sozusagen auch in die Bytecode Datei packen kann?
Ich bin derselben Meinung wie du! Manchmal finde ich Java einfach ÜBERLADEN. Außerdem sind manche Klassen von Java so einfach, die soll man gefälligst SELBER PROGRAMMIEREN. :x :lol: Ich denke da z.B. an die Klasse Point...
so ein quatsch. wieso soltle man sowas triviales selbst machen? sowas gehört halt dazu. wenn man richtig was programmiert, wird man froh sein wenn du nicht jeden fliegenschiss selbst machen musst. was glaubst du wie aufgebläht deine projekte dann wohl werden würden?
@reality: die klassen sind alle unterschiedlich und haben unteschiedliche aufgaben und zwecke. nur kann man sie halt so missbrauchen dass sie vieles gleich machen.
@reality: die klassen sind alle unterschiedlich und haben unteschiedliche aufgaben und zwecke. nur kann man sie halt so missbrauchen dass sie vieles gleich machen.
nä, ImageIcon und die ImageIO habe ja ganz verschiedene zwecke. ImageIcon ist einfach nur eine Implementierugn von einem Icon was im swing toolkit verwendet wird. zufällig bietet die die möglichkeit Bilder per URL zu laden.
die ImageIO und java.awt.image hab den zweck bilder verschiedener formate zu laden, zu bearbeiten, zu ändern, auszulesen und was halt dazu gehört.
wenn jemand ein bildbearbeitungsprogramm is das sicher komisch wenn er dafür eine klasse benutzen müsste die eigentlich nur dazu dient um Icons auf swing komponenten zu zeichnen würde ihm das schön komisch vorkomen. auch jemand der einfach ein bild auf ein JButton malen will, würde sich wundern wenn die klasse die dafür vorgesehen ist, methoden implementiert um irgendwelche bildoperationen durchzuführen :-/
Gibt es nun eine Möglichkeit, dass ich mein BufferedImage auslese, die Farben jedes Pixels in einem Zahlenarray speicher und die Bilder sozusagen auch in die Bytecode Datei packen kann...?
Gibt es nun eine Möglichkeit, dass ich mein BufferedImage auslese, die Farben jedes Pixels in einem Zahlenarray speicher und die Bilder sozusagen auch in die Bytecode Datei packen kann...?
Damit ich am Ende nur noch .class Dateien habe und keine Bilddateien herumlungern. Ich weiß, dass so ein Bild in einer Klasse zu speichern speichermäßig unsinnig ist...aber was solls Mir ist die Ordnung wichtiger...
die icons die ich benutze sind eh nur (l)gpl icons. oder kaufst du dir deine icons? und ein otto normalbenutzer will braucht auch keine icons zum datei öffnen.
scnr *g*