Bilder anzeigen

Status
Nicht offen für weitere Antworten.
F

filouweb

Gast
Hi,

ich bin ein totaler Anfänger und versuche gerade in meiner Anwendung ein Bild dazustellen.

Code:
Image im = java.awt.Toolkit.getDefaultToolkit().createImage("testbild.gif"); 
g.drawImage(im, 0, 0, this);
Eclipse zeigt mir bei diesem Code folgenden Fehler: "The method drawImage(Image, int, int, ImageObserver) in the type Graphics is not applicable for the arguments (Image, int, int, wintest)". Ich verstehe nun nicht ganz was mein Fehler ist, obwohl es wahrscheinlich sehr offensichtlich ist.
Für Hilfe danke ich schon mal im Voraus.
 

Leroy42

Top Contributor
drawImage(Image, int, int, ImageObserver) != drawImage(Image, int, int, wintest).

Wenn du this benutzt, muß die umgebende Klasse eine grafische Komponente sein
(Ich denke mal JComponent oder sogar Component)
 
F

filouweb

Gast
Jetzt verstehe ich gar nichts mehr. Was muss ich denn am Code verändern?
Code:
	public void print (Graphics g) {
		Image im = java.awt.Toolkit.getDefaultToolkit().createImage("favicon.gif"); 


	g.drawImage(im, 0, 0, this);
	
	}
 

Leroy42

Top Contributor
Der Code ist schon in Ordnung aber du hast ihn in einer
Methode deiner eigenen Klasse WinTest stehen.

Die Methode muß, wenn du this benutzt, in einer, von JComponent abgeleiteten, Klasse stehen.
 

Marco13

Top Contributor
Schreib' statt this im Zweifelsfall "null". Besser wird's dadurch nicht. Bilder sollten nicht in der paint-Methode geladen werden. Und getGraphics() sollte man auf Components nicht aufrufen. (Ich erwähn' das nur mal so...)
 
F

filouweb

Gast
Das ist genau das Thema, was ich nicht so ganz verstehe. Wie macht man das mit der Klasse?
 
F

filouweb

Gast
OK, ich glaube, das habe ich jetzt hinbekommen. Aber wie rufe ich nun aus "public static void main(String[] args)" die Methode "public void zei (Graphics g)" auf? Wenn ich es einfach mit "zei();" versuche, sagt Eclipse: "The method zei(Graphics) in the type wintest is not applicable for the arguments ()". Wie kann ich nun also aus dem Hauptprogramm die Zeichenmethode aufrufen?
 

LordLuzifer

Aktives Mitglied
Gar nicht ... deine Zeichenmethode _muss_ die Zeichenmethode deines Fensters überschreiben, sonst wird das nichts!
Heißt: Schreib deine Funktionen so um, dass du die paintComponent(Graphics g)-Methode deines Fensters überschreibst oder zumindest die Zeichenmethode deine zei()-Methode aufruft.
 
F

filouweb

Gast
Du weißt, ich bin gerade etwas begriffsstutzig. Welche Zeichenmethode?
 

LordLuzifer

Aktives Mitglied
Wenn du ein Fenster oder anderes Swing-Objekt hast, muss es eine Methode geben, die das Fenster zeichnet, die Zeichenmethode. Bei JPanel ist das die paintComponent(Graphics g)-Methode. Diese Methode ruft die JRE immer dann auf, wenn sie es für nötig hält, um das Fenster und seinen Inhalt neu zu zeichnen.
Du machst am besten deine eigene Klasse, die JPanel erweitert, und überschreibst die Zeichenmethode von deiner Klasse, so dass du damit dein Bild darstellen kannst.
Tobus hat eine ähnliche Frage gestellt, dort habe ich ein bisschen Code reingestellt, vielleicht hilft es dir.
 

Leroy42

Top Contributor
Sag mal: Hast du schon jemals ein Programm geschrieben, daß
auf irgendeinem JPanel, einer JComponent (von mir aus auch direkt
in das JFrame) ein Bild ausgibt oder etwas malt?

Ich glaube eher nicht :(

Da solltest du dir erstmal Kapitel guter Tutorials dazu durcharbeiten.

Z.B. Grundlegendes zur Grafikprogrammierung in der Javainsel

Sonst müßten wir hier noch die ganze Nacht hin- und herschreiben! :wink:
 
F

filouweb

Gast
OK, ich schau mir die ganze Sache nochmal an (in diesem Tutorial).
 
F

filouweb

Gast
Vielen Dank, ihr habt mir toll geholfen!!!!
Ich habe mir die Dokumentation nochmals ausführlich angeschaut und das mit den verschiedenen Klassen und so erstmals richtig verstanden.
 
F

filouweb

Gast
Halt, da merke ich gerade:

Wenn ich den Layoutmanager auf "f.setLayout(null);" setze, um die Elemente mit "element.setBounds(a, b, c, d)" positionieren zu können, funktioniert das Zeichnen des Bildes nicht mehr, es gibt aber keine Fehlermeldung (es erscheint einfach nichts).

Mein Code ist folgender:
Code:
import java.awt.Graphics;
import java.awt.Image;
import javax.swing.*;
import javax.swing.border.*;
import java.awt.event.*;
import java.awt.*;
import java.awt.Desktop;
import java.io.*;
import java.io.*;
import java.net.*;

import javax.imageio.*;

import javax.swing.*; 
public class DrawPanel extends JPanel {
	
	protected void paintComponent( Graphics g )
	{

		try
		{
		Image im = ImageIO.read(new File("testbild.gif")); 
		g.drawImage(im, 0, 0, this);
		}
		catch (Exception x)
		{
		}

 
		} 
}


Weiß vielleicht jemand, was ich ändern muss um das auch mit "f.setLayout(null);" hinzubekommen?
 

0x7F800000

Top Contributor
erstens: warum lädst du dieses bild denn nun in der paintComponent()-methode? die methode wird fünfzig mal pro sekunde aufgerufen, und jedes mal lädst du das bild. zum einen dauert das länger als es sein muss, zum anderen dürfte es afaik einen mords-speicherleck geben, weil du bilder explizit mit flush() aus dem speicher entfernen müsstest.

zweitens: warum sollten auf dem panel irgendwelche buttons zu sehen sein? ihre zeichenfunktion wird doch nirgendwo aufgerufen, die standartmethode paintComponent() hast du überschrieben, und ein
Code:
super.paintComponent(g);
ist da auch nicht zu sehen.

drittens: wahrscheinlich wird das bild auch hier asyncron geladen. deine drawImage() funktion kriegt also nie was zu beißen, das bild bleibt immer null, und die exception wird vom catch-block einfach stillschweigend verschluckt.
[wie soll da denn eine fehlermeldung erscheinen? du sammelst einfach alle exceptions ausnahmslos ein, und schreibst nicht mal hin dass es welche gegeben hat :autsch: ]
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
Schniffi Nur bestimmte Bilder aus einem Array auf Image Button anzeigen lassen Java Basics - Anfänger-Themen 3
C Erste Schritte Bilder nach Export anzeigen Java Basics - Anfänger-Themen 0
L Verschiedene Bilder per Knopfdruck anzeigen lassen Java Basics - Anfänger-Themen 17
J Ladebalken anzeigen während Bilder geladen werden Java Basics - Anfänger-Themen 2
G Bilder in Jar anzeigen lassen Java Basics - Anfänger-Themen 23
S JTable - Bilder anzeigen Java Basics - Anfänger-Themen 6
S Bilder auf der GUI anzeigen Java Basics - Anfänger-Themen 3
A Steuerung der Bilder beim Anzeigen Java Basics - Anfänger-Themen 6
M Mehrere Bilder anzeigen Java Basics - Anfänger-Themen 3
D Bilder anzeigen... Java Basics - Anfänger-Themen 2
Butzibu Image Loader lädt nicht alle Bilder: Java Basics - Anfänger-Themen 4
S Aktuell beste Methode um zwei Bilder zu vergleichen..? Java Basics - Anfänger-Themen 1
W Java in Exe Datei umgewandelt, Ressourcen fehlen (Bilder und Audiodateien) Java Basics - Anfänger-Themen 1
B Nach dem kompilieren werden Bilder nicht mehr gefunden Java Basics - Anfänger-Themen 10
B HTML File einlesen inkl. Bilder? Java Basics - Anfänger-Themen 2
S Bilder über Socket Senden Java Basics - Anfänger-Themen 1
S Bilder in .jar Datei laden Java Basics - Anfänger-Themen 10
S Bilder zoomen Java Basics - Anfänger-Themen 0
S Kann keine Bilder laden? Java Basics - Anfänger-Themen 9
CptK Interface Bilder über Bildschirm bewegen, bis der Abstand zum vorherigen zu groß wird Java Basics - Anfänger-Themen 13
CptK Interface Bilder mit Graphics g zeichnen Java Basics - Anfänger-Themen 7
I Projekt als .jar Datei speichern - Bilder werden nicht mehr angezeigt Java Basics - Anfänger-Themen 4
x-tshainge Java Bilder einfügen Java Basics - Anfänger-Themen 1
B Auslesen von PDF / Bilder Java Basics - Anfänger-Themen 5
DaCrazyJavaExpert Bilder werden nicht angezeigt! Java Basics - Anfänger-Themen 6
M Bilder in .Jar exportieren Java Basics - Anfänger-Themen 2
T Bilder in ausführbarer Jar Java Basics - Anfänger-Themen 11
F 2 wechselnde Bilder Java Basics - Anfänger-Themen 4
D Verzögerung des Erscheinens der Bilder Java Basics - Anfänger-Themen 5
L BufferdImage schwarzes Bild nach zusammenfügen zweier Bilder Java Basics - Anfänger-Themen 8
F Bilder aus jar einlesen Java Basics - Anfänger-Themen 10
J Bilder in Labels aktualisieren Java Basics - Anfänger-Themen 2
T jpeg Bilder zoomen.. Java Basics - Anfänger-Themen 2
C Bilder von Festplatte in Programm hochladen Java Basics - Anfänger-Themen 6
S Wo speicher ich bilder und sounds ab? Java Basics - Anfänger-Themen 4
C Threads Threaded Bilder bearbeiten Java Basics - Anfänger-Themen 8
K Bilder mit Eclipse exportieren Java Basics - Anfänger-Themen 1
J Slideshow zeigt bilder nicht an Java Basics - Anfänger-Themen 3
R Bilder aus Array als anklickbare Objekte Java Basics - Anfänger-Themen 3
K Export nach Jar mit Bilder Java Basics - Anfänger-Themen 2
L Wie bette ich Bilder in eine .jar ein? Java Basics - Anfänger-Themen 4
C Pfad für Bilder angeben Java Basics - Anfänger-Themen 11
B Bilder laden und drauf zugreifen[Eclipse] Java Basics - Anfänger-Themen 9
E ImageJ mehrere Bilder hintereinander bearteiten Java Basics - Anfänger-Themen 2
E HILFE Projekt für die Schule--> Bilder einfügen Java Basics - Anfänger-Themen 9
D 2 Fragen: Position ändern vs. LayoutManager / Bilder einfügen im Vordergrund Java Basics - Anfänger-Themen 3
H Bilder ohne Verlust speichern Java Basics - Anfänger-Themen 2
R Bilder positionieren Java Basics - Anfänger-Themen 5
D Erstellte Jar datei zeigt keine Bilder an Java Basics - Anfänger-Themen 5
4 4kb bilder Java Basics - Anfänger-Themen 5
Q Pfadangabe für zu speichernde Bilder Java Basics - Anfänger-Themen 2
B Bilder speichern (jpg, gif, jpg) Java Basics - Anfänger-Themen 4
S Bilder einladen Java Basics - Anfänger-Themen 26
B Aus einem Eclipse Projekt eine .jar - keine Bilder drin Java Basics - Anfänger-Themen 7
H Bilder im GUI einfügen Java Basics - Anfänger-Themen 12
T Bilder in der jar-datei Java Basics - Anfänger-Themen 10
H Zahlen Bilder zuordnen möglich? Java Basics - Anfänger-Themen 4
K BufferedImage, Bilder laden Java Basics - Anfänger-Themen 15
J Bilder von Objekten Java Basics - Anfänger-Themen 3
A Bilder in Eclipse speichern Java Basics - Anfänger-Themen 7
J Mit JS, Text und Bilder von Webseite verändern... Java Basics - Anfänger-Themen 10
S Input/Output Text und Bilder laden Java Basics - Anfänger-Themen 5
T Bilder werden in Jar nicht geladen Java Basics - Anfänger-Themen 10
S Java Web Start lädt keine Bilder Java Basics - Anfänger-Themen 2
T Buttons (auf denen bilder sind) random vertauschen Java Basics - Anfänger-Themen 11
D Bilder Laden, mit Eclipse ok, .jar nicht Java Basics - Anfänger-Themen 5
F Bilder aus .jar datei laden Java Basics - Anfänger-Themen 1
M Applet soll Bilder aus Ordner lesen Java Basics - Anfänger-Themen 9
T Transparente Bilder mit Graphics zeichnen Java Basics - Anfänger-Themen 17
F Bilder enfügen und Bewegen Java Basics - Anfänger-Themen 6
I Drehbare bilder in 3D Java Basics - Anfänger-Themen 4
M Bilder laden und zeichnen Java Basics - Anfänger-Themen 3
T JTextPane - setText kein kein neuladen der Bilder? Java Basics - Anfänger-Themen 8
A Bilder in Eclipse Java Basics - Anfänger-Themen 8
xehpuk Ordner "Eigene Bilder" ansteuern Java Basics - Anfänger-Themen 3
N Bilder Objekten zuweisen Java Basics - Anfänger-Themen 2
J Bilder auf Bilder zeichnen Java Basics - Anfänger-Themen 8
N jar kann Bilder nicht finden(?) Java Basics - Anfänger-Themen 4
S Spiel automat -Bilder vergleichen Java Basics - Anfänger-Themen 3
R Gif Bilder flimmern Java Basics - Anfänger-Themen 10
P Signiertes JAR aber keine Bilder o0 Java Basics - Anfänger-Themen 6
S Bilder der Diashow werden in anderen Bildern angezeigt Java Basics - Anfänger-Themen 3
G Bilder aus dem Projekt Verzeichnis werden n. angezeigt Java Basics - Anfänger-Themen 7
C Bilder von Server zu Server kopieren über Webdav(Sardine) Java Basics - Anfänger-Themen 5
K Bilder "langsam" laden Java Basics - Anfänger-Themen 4
FreddyStepp Bilder zusammenfügen Java Basics - Anfänger-Themen 7
B GUI-Bilder einfügen Java Basics - Anfänger-Themen 40
S Bilder vergleichen Java Basics - Anfänger-Themen 6
B Kann man im Thread Bilder laden? Java Basics - Anfänger-Themen 8
S Wo speichere ich Bilder für Applets (Netbeans) Java Basics - Anfänger-Themen 5
J Mehrere Bilder laden Java Basics - Anfänger-Themen 6
D Bilder einfügen Java Basics - Anfänger-Themen 8
W Bilder einfügen? Java Basics - Anfänger-Themen 2
S Mehrere Bilder bewegen Java Basics - Anfänger-Themen 5
B Bilder zeichnen Java Basics - Anfänger-Themen 2
D Bilder in JFrame laden Java Basics - Anfänger-Themen 8
L Frage bzgl. Threads beim Bilder laden Java Basics - Anfänger-Themen 3
S Bilder in AWT Java Basics - Anfänger-Themen 7
J java applets bilder? Java Basics - Anfänger-Themen 11
manunana89 Bilder auf JFrame/beste Möglichkeit??? Java Basics - Anfänger-Themen 5

Ähnliche Java Themen

Neue Themen


Oben