Wieso bekomme ich kein Bild drauf???

Status
Nicht offen für weitere Antworten.

radiac

Bekanntes Mitglied
Hallo.

Habe hier mal versucht auf einem Javafenster ein Bild zu zaubern. Geht aber nicht.
meine Paintmethode kann ich auch benennen wie ich will...
Arbeite mit Netbeans 6.0.

Java:
package paket;


import java.awt.*;
import java.awt.event.*;

public class GrafikBeispiel
extends Frame
{

  public static void main(String[] args)
  {
    GrafikBeispiel wnd = new GrafikBeispiel();
  }

  public GrafikBeispiel()
  {
    super("Bitmap");
    setBackground(Color.lightGray);
    setSize(250,150);
    setVisible(true);
    //WindowListener
    addWindowListener(new WindowClosingAdapter(true));
    //Bild laden
  }
    
  public void paint(Graphics g)
  {
    Image img;
    img = getToolkit().getImage("1.gif");
      g.drawImage(img,40,40,this);
    }
}

Wieso kommt die Grafik 1.gif nicht???
 

Schandro

Top Contributor
Entweder ist dein Bild komplett transparent oder es wird eine Exception geschmissen weil der File nicht gefunden werden kann. Stell sicher das 1.gif im package paket bei den anderen binarys liegt.
Ansonsten solltest du das Image auf keinen Fall in der paint Methode laden. Außerdem könntest du dir überlegen Swing statt AWT zu benutzen.

Java:
meine Paintmethode kann ich auch benennen wie ich will...
Nur wenn sie paint heißt wird sie zum malen des Fensters benutzt. Damit dich der Compiler immer warnt, falls du ne Methode überschreiben willst, du es ihn Wahrheit aber garnicht tust sondern eine neue Methode definierst, kannst du ein
@Override
vor die Methode schreiben
 
Zuletzt bearbeitet:

radiac

Bekanntes Mitglied
Hi, und danke für die Antwort.
Mal ganz kurz nebenbei, ich habe ein paar minigames mit JavaME programmiert. Da war das einbinden von Grafiken viel einfacher.
Das mit dem @override könnte ich als option via Netbeans auswählen, aber bringt irgendwie auch nichts.
Weis auch nicht wie das angewendet wird :).
Die Grafik ist nur ein rotes Viereck. Die Grafik befindet sich auch im Package "Paket".

Habe versucht wie bei JavaME die Grafik ausserhalb von der paintmethode zu laden, jedoch wird der aufruf: img = getToolkit().getImage("1.gif"); als falsch angezeigt...
Laut exeption... kann img class nicht finden...

Wie würdest du das bild laden???
Was ich auch nicht so verstehe ist, das die getToolkit() methode??? oder Paket??? ja über die AWT geladen wird... aber selbst wenn ich den import Pfad bis dahin leite, passiert garnichts...

Das nervt :)!!!



Noch kurz die exception wenn ich das Bild wie folgt versuche zu laden:
Java:
package paket;


import java.awt.*;
import java.awt.event.*;
import java.awt.Graphics.*;

public class GrafikBeispiel
extends Frame
{
Image img;
img = getToolkit().getImage("1.gif");

  public static void main(String[] args)
  {
    GrafikBeispiel wnd = new GrafikBeispiel();

  }

  public GrafikBeispiel()
  {
    super("Bitmap");
    setBackground(Color.lightGray);
    setSize(250,150);
    setVisible(true);
    //WindowListener
    addWindowListener(new WindowClosingAdapter(true));
    //Bild laden
  }
    
  public void paintabc(Graphics g)
  {
      g.drawImage(img,40,40,this);
    }
}





run:
Exception in thread "main" java.lang.RuntimeException: Uncompilable source code - cannot find symbol
symbol : class img
location: class paket.GrafikBeispiel
at paket.GrafikBeispiel.<init>(GrafikBeispiel.java:12)
at paket.GrafikBeispiel.main(GrafikBeispiel.java:16)
Java Result: 1
BUILD SUCCESSFUL (total time: 3 seconds)
 
Zuletzt bearbeitet:

L-ectron-X

Gesperrter Benutzer
Setze deine Zeile [c]img = getToolkit().getImage("1.gif");[/c]
mal zwischen Zeile 22 und 23.

Und [c]paintabc(Graphics g)[/c] benennst du um in [c]paint(Graphics g)[/c].

Und diese Zeile [c] addWindowListener(new WindowClosingAdapter(true));[/c]
ersetzt du mal mit folgendem:
Java:
    //WindowListener
    addWindowListener(new WindowAdapter() {
       public void windowClosing(WindowEvent e) {
          System.exit(0);
       }
    });
...und setzt das am besten noch vor [c]setVisible(true);[/c]
 
Zuletzt bearbeitet:

radiac

Bekanntes Mitglied
Hi @ L-ectron-X,

habe es genau so gemacht, wie du sagtest, leider geht es immer noch nicht.
Ich verstehe das nicht. Voralle dem sehe ich eigentlich nichts, das dagegen spricht, das es funktioniert. Hier nochmal der Code:

Java:
package paket;


import java.awt.*;
import java.awt.event.*;
import java.awt.Graphics.*;

public class GrafikBeispiel
extends Frame
{
Image img;

  public static void main(String[] args)
  {
    GrafikBeispiel wnd = new GrafikBeispiel();

  }

  public GrafikBeispiel()
  {
    super("Bitmap");
    setBackground(Color.lightGray);
    setSize(250,150);
     //WindowListener
    addWindowListener(new WindowAdapter() 
    {
       public void windowClosing(WindowEvent e) 
       {
          System.exit(0);
       }
    });
    setVisible(true);
    
    //Bild laden
    img = getToolkit().getImage("1.gif");
    
  }  
  public void paintabc(Graphics g)
  {
      g.drawImage(img,40,40,this);
    }
}
 
Zuletzt bearbeitet:

radiac

Bekanntes Mitglied
Java:
package paket;
 
 
import java.awt.*;
import java.awt.event.*;
import java.awt.Graphics.*;
 
public class GrafikBeispiel
extends Frame
{
Image img;
 
  public static void main(String[] args)
  {
    GrafikBeispiel wnd = new GrafikBeispiel();
 
  }
 
  public GrafikBeispiel()
  {
    super("Bitmap");
    setBackground(Color.lightGray);
    img = getToolkit().getImage("1.gif");
    setSize(250,150);
    
     //WindowListener
    addWindowListener(new WindowAdapter() 
    {
       public void windowClosing(WindowEvent e) 
       {
          System.exit(0);
       }
    });
    setVisible(true);
    
    //Bild laden
    
    
  }  
  public void paint(Graphics g)
  {
      g.drawImage(img,40,40,this);
    }
}


Kommt nichts... Habe ein Rechteck zeichnen lassen. Das geht komischerweise.
Habe auch mal anstatt eine GIF eine JPEG Datei laden lassen... geht auch nicht.

Mir ist bekannt, das man in JavaME bei get.Image("bild.gif"); vor dem bild noch ein / hin muss. Aber geht hier auch nicht.
Auch kann ich wieder das Bild bennen wie ich will, und der compiler zeigt mir keine Fehler an. Ich bau jetzt mal eine exeption rein... aber die geht bestimmt auch ohne probleme durch...

Macht ihr das auch so, ein Bild auf den Screen zu zaubern???
Oder mach ich mir das einfach zu kompliziert...
Hier wurde gesagt, ich soll das mit java.swing machen. Hab das Thema noch nicht durch mit swing... aber ist das üblich, das man Grafiken anzeigen lässt mit swing???

Viele Grüße Radiac
 

radiac

Bekanntes Mitglied
Was bedeutet das???


The serializable class Listing3403 does not declare a static final serialVersionUID field of type long Listing3403.java /test1/src line 4 Java Problem


The local variable wnd is never read Listing3403.java /test1/src line 10 Java Problem
 
B

bygones

Gast
Was bedeutet das???


The serializable class Listing3403 does not declare a static final serialVersionUID field of type long Listing3403.java /test1/src line 4 Java Problem


The local variable wnd is never read Listing3403.java /test1/src line 10 Java Problem
das was es sagt ? oder scheiterts am englischen ?

beides sind warnings - also laeuft das programm auch mit ihnen.

das erste sagt dass du eine [c]static final long serialVersionUID = 1L;[/c] brauchst
das zweite dass du eine variable hast die nicht benutzt wird...
 

radiac

Bekanntes Mitglied
Danke für die Antwort.

Also am englischen scheiterts nicht. Nur eben an dieser Commandozeile.
Kann es sein, dass das der Grund ist warum ich kein Bild in das Fenster reinbekomme?

Ich hab echt alles versucht...

Kann mir jemand helfen und erklären, wie man ein ganz normales Bild in ein Fenster einbaut?

Aber bitte nicht mit irgendwelchem Schnick Schnack was in einem Beispiel nicht reingehört.
Wirklich nur das Fenster und eben ein img da rein.

Und wie gesagt... JavaME macht das ohne Probleme... ich verstehe nicht wieso das in Java6 nicht geht...

Danke Danke!! :rtfm:
 

Der Müde Joe

Top Contributor
bei mir klappts....

kannst ja mal mit:

Java:
		System.out.println(System.getProperty("user.dir"));
		File file = new File("12.gif");
		System.out.println(file.getCanonicalPath());
		img = ImageIO.read(file);

..dann rumpelts mit ner Exception, wenn das Bild nicht gefunden wird

EDIT:
oder sogar (auch hier rumpelts wenn das Bild am falschen Ort ist)
Java:
import java.awt.Graphics;
import java.awt.image.BufferedImage;
import java.io.File;
import java.io.IOException;

import javax.imageio.ImageIO;
import javax.swing.JFrame;
import javax.swing.JPanel;


public class Example {

	public static void main(String[] args) throws IOException {
		JFrame frame = new JFrame();
		frame.setSize(200, 200);
		File file = new File("1.gif");
		System.out.println("hier sollte das Bild sein: \n" + file.getCanonicalPath());
		final BufferedImage image = ImageIO.read(file);
		JPanel panel = new JPanel() {

			@Override
			public void paintComponent(Graphics g) {
				g.drawImage(image, 100, 100, null);
			}
		};
		frame.getContentPane().add(panel);
		frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		frame.setVisible(true);
	}
}
 
Zuletzt bearbeitet:

L-ectron-X

Gesperrter Benutzer
Java:
public void paint(Graphics g)
  {
    Image img;
    img = getToolkit().getImage("1.gif");
      g.drawImage(img,40,40,this);
    }
}

Wieso kommt die Grafik 1.gif nicht???
Das Problem ist, dass du die Grafik erst in der paint()-Methode lädst. Wenn die paint()-Methode aufgerufen wird, sollte das Bild schon geladen worden sein, sonst kann nichts gezeichnet werden.

Das Bild muss also schon im Konstruktor geladen werden.
Lies noch mal die obigen Postings genau durch, dann wird's klappen.

Und: Das Bild muss für dieses Beispiel im Verzeichnis deiner class-Datei liegen.
 

radiac

Bekanntes Mitglied
@ der müde Joe:

Also das Ding, was du mir da gegeben hast, ne??? xD
Das solltest du als Patent anmelden :). Die Datei war tatsächlich im falschen Folder...

Jetzt stell ich mir aber die Frage, wieso??? Netbeans, als auch Eclipse, haben beide von Grund auf ein neues Projekt für dieses Program aufgelegt... in diesem Projektordner habe ich die "gif" Datei reingeschmissen.

Und wenn ich das Programm laufen lasse, suchen beide IDE´s ganz woanders... das kann doch nicht sein!!!! ;( Das hat mich 2 1/2 Tage gekostet... ich dachte echt, ich bin unfähig...

Dabei war die Datei einfach nur im falschen Ordner...
Und der größe Witz ist, das ich schon probiert habe die Datei zu verschieben bzw. zu verlinken... nur hat er sie gestern noch nicht gefunden...

Gibs zu Joe!!! Ihr beide steckt doch unter einer Decke xD!!!


Vielen Dank!!!! Das war bisher das dümmste Problem was mir unterlaufen ist.

Ergebnis der ganzen Sache: Ich habe gestern über 400 Seiten in 3 verschiedenen Büchern über GUI mit AWT und Bitmapzeugs gelesen! Doch keine Chance!!!!

@ alle die mir versucht haben zu Helfen!!! Eure Tipps haben zwar das Problem nicht beseitigt, aber Ihr habt mir viele tolle Sachen erklärt, die mir bestimmt in Zukunft noch sehr viel helfen werden!!

Super!!! :applaus:
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
A Wieso bekomme ich hier zwei unterschiedliche Ausgaben? Java Basics - Anfänger-Themen 6
P Wieso kann ich als Index für einen Array einen Char angeben? Java Basics - Anfänger-Themen 3
Ostkreuz Wieso wird die Methode nochmal aufgerufen? Java Basics - Anfänger-Themen 5
H Interface Wieso "List<String> list = new ArrayList<>[…]" Java Basics - Anfänger-Themen 4
I Methoden Wieso wird mein Array "a" verändert und meine Variable "a" nicht? Java Basics - Anfänger-Themen 4
sserio Wieso funktioniert mein Programm nicht Java Basics - Anfänger-Themen 2
sserio Wieso werden nicht alle Primzahlen bis 1000 in meine Liste gepackt ? Java Basics - Anfänger-Themen 8
sserio Wieso funktioniert mein TableView nicht /JavaFX. Java Basics - Anfänger-Themen 4
N Wieso funktioniert die Deklaration nicht Java Basics - Anfänger-Themen 3
Zrebna Umgebungsvariable Wieso wird meine verwendete JDK-Version in der Prompt nicht erkannt? Java Basics - Anfänger-Themen 6
F Wieso wird immer die falsche Mausposition angegeben? Java Basics - Anfänger-Themen 1
C Objekt1.equals(Objekt2) = immer false. Wieso? Java Basics - Anfänger-Themen 22
J Fehler im Code, aber ich weiß nicht wieso! Java Basics - Anfänger-Themen 6
ZH1896ZH Wieso diese Ausgabe?? Java Basics - Anfänger-Themen 10
W Wieso funktioniert mein Switch Case nicht ?! Java Basics - Anfänger-Themen 9
D Interface Wieso Aufruf aller Methoden eines Interfaces? Java Basics - Anfänger-Themen 11
F Wieso wird dieser Befehl nicht ausgeführt? (Anfänger) Java Basics - Anfänger-Themen 2
H Datentypen 64 Bit passt in 32 Bit, wieso? Java Basics - Anfänger-Themen 9
L Input/Output Wieso kommt diese Ausgabe? Java Basics - Anfänger-Themen 12
H Wieso wird mir ein Fehler angezeigt? Java Basics - Anfänger-Themen 5
H Wieso öffnet sich der Texteditor? Java Basics - Anfänger-Themen 6
ChrisPL4Y Wieso funktioniert dieses Programm nicht? Java Basics - Anfänger-Themen 6
B Wieso wird die Zeile "column" genannt und die Spalte "line"? Java Basics - Anfänger-Themen 12
B Wieso wird hier so viel als falsch angezeigt? Java Basics - Anfänger-Themen 2
B Wieso gibt er hier nur die ungeraden Zahlen aus? Java Basics - Anfänger-Themen 5
B Wieso gibt das Programm in der Console kein Ergebnis aus? Java Basics - Anfänger-Themen 2
A Wieso charAt(0) + charAt(3) = INT-Wert? Java Basics - Anfänger-Themen 5
H NullPointerException, aber wieso? Java Basics - Anfänger-Themen 5
P Cannot find symbol, wieso? Java Basics - Anfänger-Themen 5
K Wieso muss man finale statische Variablen sofort oder eben im Konstruktor initialisieren? Java Basics - Anfänger-Themen 2
F Operatoren Wieso fliegt hier eine NullPointer Exception :( Java Basics - Anfänger-Themen 3
Z JPanel wird zweimal hinterinander gezeichnet.. Wieso? Java Basics - Anfänger-Themen 4
T Wieso kann ich das jar file nicht starten? Java Basics - Anfänger-Themen 5
S Wieso wird mein JFrame transparent dargestellt? Java Basics - Anfänger-Themen 5
G Interface java.util.Comparator: Wieso muss nur die Methode compare() implementiert werden Java Basics - Anfänger-Themen 2
A Wieso übergibt der nicht die bearbeitete txt file Java Basics - Anfänger-Themen 8
Z Lotto-Programm Wieso klappt das? Java Basics - Anfänger-Themen 8
P Compiler-Fehler wieso zeigt der compiler ein else without if? Java Basics - Anfänger-Themen 3
S OOP Die Methode funktioniert, aber wieso? Java Basics - Anfänger-Themen 2
X Connection reset, wieso? Java Basics - Anfänger-Themen 4
T Objektorientierte Programmierung - Kein Plan wieso das nicht funktioniert! Java Basics - Anfänger-Themen 6
A Bild verschwindet! Wieso?? Java Basics - Anfänger-Themen 2
A Wieso kann ich nicht auf diese Variable zugreifen? Java Basics - Anfänger-Themen 6
A Wieso funktioniert dieser Timer nicht?? Java Basics - Anfänger-Themen 3
A Wieso denn das??? Java Basics - Anfänger-Themen 2
A Wieso erscheinen die Objekte manchmal und manchmal nicht Java Basics - Anfänger-Themen 2
A Erste Schritte Wieso funktioniert diese Klasse nicht Java Basics - Anfänger-Themen 11
R Wieso funktioniert dieses Array nicht? Java Basics - Anfänger-Themen 13
S Methoden void-Methode: Wieso gibt es eine Rückgabe? Java Basics - Anfänger-Themen 5
X Stack mit Oberklasse, wieso funktioniert es nicht? Java Basics - Anfänger-Themen 8
SexyPenny90 Wieso ist diese eigene Equals-Methode schlecht? Java Basics - Anfänger-Themen 17
C Klassen Wieso kein infiniter Regress? Java Basics - Anfänger-Themen 4
M ArrayList - remove() löscht nicht! - weiß nicht wieso! Java Basics - Anfänger-Themen 8
X Wieso mehrere JRE ordner? Java Basics - Anfänger-Themen 8
J Regex Ausdrücke im Array - Wieso werden sie nicht erkannt? Java Basics - Anfänger-Themen 4
A Wieso wird immer 0 ausgegeben? Java Basics - Anfänger-Themen 4
R Wieso hat ein Konstruktor keinen Rückgabetyp? Java Basics - Anfänger-Themen 6
T JTable wird nicht erzeugt, wieso? Java Basics - Anfänger-Themen 17
S JTable removeRow() IndexOutOfBounceException - wieso? Java Basics - Anfänger-Themen 3
S wieso Fehlermeldung cannot find symbol hier Java Basics - Anfänger-Themen 10
N NumberFormatException, aber wieso? Java Basics - Anfänger-Themen 5
E Wieso funktioniert Boolean.parseBoolean(s) nicht? Java Basics - Anfänger-Themen 9
T Wieso kompiliert das? Java Basics - Anfänger-Themen 7
B Erste Schritte Programm kompiliert nicht. Wieso? Java Basics - Anfänger-Themen 14
Luk10 Wieso bricht die Rekursion nicht ab? Java Basics - Anfänger-Themen 3
B Warnung : Dead Code. Aber wieso? Java Basics - Anfänger-Themen 10
W Compiler-Fehler NullPointerException. Aber wieso? Java Basics - Anfänger-Themen 2
C Conways Game of Life / "Waldbrandsimulation": wieso temporäres Hilfs-Array?! Java Basics - Anfänger-Themen 8
R If-Abfrage liefert false zurück, wieso ? Java Basics - Anfänger-Themen 20
K Methode funzt nicht, wieso? Java Basics - Anfänger-Themen 12
H Wieso ist das eine Endlosschleife? Java Basics - Anfänger-Themen 8
R wieso Nullpoint und was mit Events ? Java Basics - Anfänger-Themen 14
C Wieso funktioniert das Array nicht? Java Basics - Anfänger-Themen 10
R Wieso hänge ich hier in einer Endlosschleife (vermute ich zumindest)? Java Basics - Anfänger-Themen 2
M Wieso funktioniert dieser simple Code nicht? Java Basics - Anfänger-Themen 9
J Wert wird überschrieben, weiß nicht wieso Java Basics - Anfänger-Themen 2
S wieso ist mein Code falsch? Java Basics - Anfänger-Themen 2
D array.toString() wieso funktioniert es nicht Java Basics - Anfänger-Themen 4
A Wieso terminiert das Programm nicht? Java Basics - Anfänger-Themen 4
B Wieso ein Fehler? illegal Starts of expression? Java Basics - Anfänger-Themen 12
Hatebreed Keine Datenbankverbindung, wieso? (ClassNotFoundEscpetion) Java Basics - Anfänger-Themen 18
U Anfänger Frage - Ausgabe funktioniert nicht - Wieso? Java Basics - Anfänger-Themen 10
G Wieso enum Declaration nur außerhalb einer Methode möglich? Java Basics - Anfänger-Themen 9
S Wieso funtkioniert das SQL DELETE nicht? Java Basics - Anfänger-Themen 1
K Wieso schaltet meine CheckBox von selbst um ? Java Basics - Anfänger-Themen 31
fill0soph Wieso ist "Minus-Unendlich" == 1? Java Basics - Anfänger-Themen 4
G Wieso werdne die componentne nciht angezeigt Java Basics - Anfänger-Themen 4
B Primzahlen berechnen - Wieso unterschiedliche Java Basics - Anfänger-Themen 3
K Wieso wird "paint" nicht ausgeführt ? Java Basics - Anfänger-Themen 2
F Wieso java.lang.StackOverflowError (minimales programm) Java Basics - Anfänger-Themen 11
G Wieso eine nullpointerexception? Java Basics - Anfänger-Themen 6
G Wieso ist eine String-Übergabe keine by-reference-Zuweisung? Java Basics - Anfänger-Themen 7
K Wieso kommt ne NullPointerException Java Basics - Anfänger-Themen 3
N Wieso final ? Java Basics - Anfänger-Themen 4
H wieso syntax error bei else ? Java Basics - Anfänger-Themen 3
H wieso fehler ? must return a type of int. Java Basics - Anfänger-Themen 4
F Wieso werden Char-Werte wie Zahlen addiert? Java Basics - Anfänger-Themen 5
M Wieso zeichnet es nicht auf den JPanel Java Basics - Anfänger-Themen 7
V Wieso NullPointerException Java Basics - Anfänger-Themen 7
M Wieso finden andere nicht die main .class Java Basics - Anfänger-Themen 20

Ähnliche Java Themen

Neue Themen


Oben