Java einfache Bilder erzeugen.
-
Hallo Leutz,
ich hab gerade erst mit Java zu programmieren begeonnen und zuvor C hergenommen. Ich hab in C ein schönes Programm entworfen, aber leider sind Konsolenprogramme nicht jedermanns sache drum wollte ich das ganze jetzt farbig in java machen. Ich habe ein Spielfeld zu aufbauen und möchte daher als ersten Schritt einmal ein kleines Bildchen in einem Applet ausgeben. Ich hab zwar schon ein Programm gefunden welches diese kleine Aufgabe erledigt nur will es nicht ganz funktionieren.package ro.inf.p2.vorgabe9; import java.awt.*; import javax.swing.*; public class Graphikdemo extends JApplet { Image bild; public void init() { bild = getImage(getCodeBase(),"C:/Bilder/sand.gif"); } public void paint(Graphics g) { g.drawString("Anzeigen von Bildern", 20, 20); g.drawImage(bild, 30, 30, this); } }
Also die Frage die ich jetzt habe ist wie bekomm ich das Programm zum laufen? Und falls jemand bereits eine Lösung für das zweite Problem mit den Spielfeldaufbauen hat wärs auch nicht schlecht.
MFG
Darkmaster
-
du nimmst deinen Kompilierer, übersetzt das class file und startest es mit dem appletviewer
oder du nimmst eclipse
-
Also ich nehm Eclipse her und hab es auch kompiliert, nur dass der Text zwar erscheint, aber das Bild nirgends.
-
hast du denn auch unter dem angegebenen pfad ein bild mit dem namen sand.gif zu liegen?
-
Ja hab ich. Er zeigt auch ne Menge Fehler an nach dem laufen mit denen ich aber noch nix anfangen kann:
java.lang.NullPointerException
at sun.java2d.pipe.DrawImage.copyImage(Unknown Source)
at sun.java2d.pipe.DrawImage.copyImage(Unknown Source)
at sun.java2d.SunGraphics2D.drawImage(Unknown Source)
at sun.java2d.SunGraphics2D.drawImage(Unknown Source)
at ro.inf.p2.vorgabe9.Graphikdemo.paint(Graphikdemo.java:18)
at sun.awt.RepaintArea.paint(Unknown Source)
at sun.awt.windows.WComponentPeer.handleEvent(Unknown Source)
at java.awt.Component.dispatchEventImpl(Unknown Source)
at java.awt.Container.dispatchEventImpl(Unknown Source)
at java.awt.Component.dispatchEvent(Unknown Source)
at java.awt.EventQueue.dispatchEvent(Unknown Source)
at java.awt.EventDispatchThread.pumpOneEventForHierarchy(Unknown Source)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source)
at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
at java.awt.EventDispatchThread.run(Unknown Source)
-
npe zeigt ganz deutlich das es probleme mit dem path zum bild gibt
ich hab schon so lange nicht mehr mit windows gearbeitet, dass mir nicht gleich aufgefallen ist, dass es bei dir C:/... heißt, dabei sollte es doch C:\ lauten
-
C:\ darf ich nicht schreiben weil sonst ja java oder auch andere programmiersprachen das meckern anfangen würden. wenn dann müsst ich C:\\ schreiben was mir aber genauso wenig erfolg bringt. ich hab jetzt einfach stupid ein anderes programm umgebaut und dieses verwendet folgenden befehl:
bilds = java.awt.Toolkit.getDefaultToolkit().createImage("c:/Bilder/sand.gif");
ich hab aber keine ahnung was daran anders sein sollte als zu dem vorherigen. Das Bild wird ordnungsgemäß angezeigt egal ob ich den Strich: / oder den \\ hernehm. Außer dass eclipse nach einer größeren schleifenkonstruktion auf einmal mist macht. z.b. änder ich sand.gif in etwas anderes und was macht er? er checkt es nicht ich kann auch alles weglassen zwischen den klammern und er meckert immer noch nicht und zeigt immer noch das alte bild an. Was mach ich da blos auf einmal falsch? Ich muss doch auf RUN AS JAVA APLICATION klicken? denn wenn ich JAVA BEAN hernehm macht ers richtig und macht gar kein bild wenn es das nicht gibt. nur kann ich die größe dann ned ändern was heißen ich muss erst mal das fenster großziehen.
-
Jetzt hauts wieder hin, aber ich habe die gif bilder nicht selbst gemacht sondern von jemand anderem hergenommen, weil ichs nur ausprobieren wollte. Jetzt wollte ich jedoch die Bilchen selbst machen und hab dafür bilder bearbeitet und im gif format auf 30 *30 Pixel abgespeichert. Leider will Java diese nicht anzeigen. Nur ab und zu vereinzelt welche, und das auch noch unregelmäßig. Ich hab das bild auch in den Bilder ordner gelegt und nur den befehl von sand.gif auf sandug.gif geändert weil das neue bild so heißt. Nur irgendwie funktioniert das nicht. Weiß jemand warum?