Bilder werden nach Änderung nicht angezeigt

Popey

Mitglied
Hallo!!!

Sitze schon seit Tagen an folgendem Problem (habe auch in keinem Forum eine passende Antwort gefunden, die mir weiterhelfen würde).

Ich programmiere an einem Online-Kartenspiel und habe auf meiner Klasse Spieltisch einen grünen Hintergrund gesetzt. Wenn ich die Klasse jetzt starte ist der Hintergrund des Frames zunächst grau. Wenn ich das Fenster einmal minimiere und wieder öffne, wird die Grafik angezeigt.
Genauso geht es mir dann auch bei der Anzeige der Karten. Jeder Spieler erhält eine Karte. Auf meinem Spieltisch ist zunächst nichts zu sehen. Wenn ich ihn minimiere und wieder öffne sind alle Karten sichtbar.
Ich denke es hat nichts damit zu tun, wie ich die Karten auf die jeweiligen JPanels adde - angezeigt werden sie ja, bin nach der Suche wie ich meinen JFrame entsprechend "refreshen" kann.

Kleine Anmerkung noch: repaint() hab ich in 1000 facher Ausfertigung probiert, hat aber nichts geholfen.

Ich hoffe es kann mir jemand helfen!!

Grüße,
Popey
 

Antoras

Top Contributor
So ganz ohne deinen Code zu zeigen kann man bloß raten wo das Problem sein könnte. Bau mal ein KSKB bei dem der Fehler auftritt, dann kann dir mit Sicherheit besser geholfen werden.
 

L-ectron-X

Gesperrter Benutzer
Wenn es Komponenten sind, die du zur Laufzeit hinzufügst, dann muss der Container, der sie hält, neu gezeichnet werden. Das erreichst du mit einem Aufruf von validate().
 

Popey

Mitglied
Danke für den Hinweis, aber das hilft mir nicht weiter.
Ich post jetzt mal einen kleinen Code-Ausschnitt, vll hilft das ja bei der Problemfindung:

Zu Beginn des Spiels wird ein Menü geladen, in dem man auswählen kann, ob man einem bestehenden Tisch beitreten möchte oder einen neuen Tisch anlegen will.
In diesem Menü ist als ContentPane ein JPanel "mainPanel" gesetzt, auf diesen ich ein Image lege. Die anderen Komponenten, die dann auf das mainPanel gelegt werden werden mit der Methode setOpaque(false) durchsichtig gemacht, so dass man das Bild nach minimieren und wieder öffnen wunderbar sehen kann. Leider wird es halt beim Starten nicht angezeigt (bis auf ein paar Ausnahmen, denn hin und wieder ist es schon beim Programmstart da):

Java:
// MainPanel für ContentPane mit Hintergrundbild - wird vorm Konstruktor in der Variablendeklaration //angelegt
	JPanel mainPanel = new JPanel() {
		/**
		 * 
		 */
		private static final long serialVersionUID = 1L;

		@Override
		protected void paintComponent(Graphics g) {
			super.paintComponent(g);
			g.drawImage(img, 0, 0, getWidth(), getHeight(), null);
		}
	};


public MenuFrame() {

		/**
		 * Einstellen der Größe, des Titels und dass man das Fenster nicht
		 * resizen kann
		 */
		this.setMinimumSize(new Dimension(670,520));
		this.setResizable(false);
		this.setTitle("Deppenspiel - Menü");
		this.setContentPane(mainPanel);

                // usw......
 

Popey

Mitglied
Was meinst du mit Laden? Die Bilder sind in meinem workspace und werden wie oben im Code beschrieben in mein Java-Programm eingefügt.
 

L-ectron-X

Gesperrter Benutzer
Irgendwie musst du doch die Images ins Programm bekommen, das interessiert mich.
Das kann man deinem Beispiel eben nicht entnehmen.
 

Popey

Mitglied
Achso, hab ne Zeile vergessen, sorry!!

Java:
private Image img = Toolkit.getDefaultToolkit().createImage(
			"data/filz-unterlage.png");
	
	// MainPanel für ContentPane mit Hintergrundbild
	JPanel mainPanel = new JPanel() {
		/**
		 * 
		 */
		private static final long serialVersionUID = 1L;

		@Override
		protected void paintComponent(Graphics g) {
			super.paintComponent(g);
			g.drawImage(img, 0, 0, getWidth(), getHeight(), null);
		}
	};

jetzt müssts zu sehen sein
 

L-ectron-X

Gesperrter Benutzer
Und da haben wir bereits ein mögliches Problem.
Wenn du mit Toolkit die Bilder lädst, werden diese unter Umständen nicht sofort angezeigt. Insbesondere dann, wenn die Bilder etwas größer sind, oder mehrere Bilder geladen werden.
Im Fall Toolkit, solltest du das Laden mit MediaTracker überwachen.

Aber es gibt in Swing eine weitaus einfachere und effektivere Variante, Bilder zu laden: ImageIO.

Wie beide Varianten arbeiten, kannst du dir mal hier anschauen: Grafikdateien laden und anzeigen - Byte-Welt Wiki
Dann ist dein Problem vielleicht schon gelöst.
 

Popey

Mitglied
Hab mir die Seite jetzt mal durchgelesen, aber bin ein bisschen unschlüssig.
Ich brauch ja in meinem Fall kein Applet.

Kann ich die Grafik so wie oben in meinem Quellcode beschrieben anstatt über Toolkit einfach anders laden und ansonsten den Quellcode unverändert lassen, oder muss ich da noch eine extra Klasse schreiben.

Wär super, wenn du mir das noch erklären könntest!!
 

L-ectron-X

Gesperrter Benutzer
Kann ich die Grafik so wie oben in meinem Quellcode beschrieben anstatt über Toolkit einfach anders laden und ansonsten den Quellcode unverändert lassen...
Ja!
Versuche mal:
Java:
try {
  img = ImageIO.read(getClass().getResource("data/filz-unterlage.png"));
}
catch(IllegalArgumentException iae) {
  JOptionPane.showMessageDialog(this, "Grafikdatei nicht gefunden!");
}
catch(IOException ioe) {
  JOptionPane.showMessageDialog(this, "Fehler beim Einlesen der Grafikdatei!");
}
 

Popey

Mitglied
Habs jetzt eingebaut. Kommt aber die Fehlermeldung, dass er die Grafikdatei nicht findet.
An was kann das liegen - liegt immer noch in meinem workspace im Ordner data ???:L
 

Popey

Mitglied
Hab ich auch schon ausprobiert. Hab die Datei auch schon einen Ordner höher gepackt und dann ohne data/ probiert. Kommt aber immer das JOptionPane mit Grafikdatei nicht gefunden....komisch :bahnhof:
 

Popey

Mitglied
So, denk ich hab des Rätsels Lösung.
Hab nun zuerst einen File angelegt mit der Grafik. Den adde ich dann über ImageIO!!

Vielen Dank für deine Hilfe!!!
 

L-ectron-X

Gesperrter Benutzer
Habs noch mal ausprobiert. Bei mir funktionieren alle 3 Varianten:
"pic/fire.jpg"
"/pic/fire.jpg"
"./pic/fire.jpg"

mit getClass().getResource() das Bild einzulesen hat den Vorteil, dass man das Bild später auch aus einer Jar-Datei laden kann.
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
I Swing Bilder werden nach Export nicht angezeigt AWT, Swing, JavaFX & SWT 1
L Bilder werden in exportierter Datei nicht geladen AWT, Swing, JavaFX & SWT 6
J Bilder aus dem SceneBuilder werden in der Jar nicht dargestellt AWT, Swing, JavaFX & SWT 4
TheWhiteShadow JavaFX Bilder werden ungewollt Skaliert AWT, Swing, JavaFX & SWT 1
A Swing Bilder werden nicht angezeigt AWT, Swing, JavaFX & SWT 3
F Bilder werden nicht in's Array geladen AWT, Swing, JavaFX & SWT 4
F Nicht alle Bilder werden angezeigt AWT, Swing, JavaFX & SWT 2
U Bilder in Jar werden nicht gefunden AWT, Swing, JavaFX & SWT 5
Cloud Einige Bilder werden nicht geladen AWT, Swing, JavaFX & SWT 11
A Java Print: Bilder werden zu groß ausgedruckt AWT, Swing, JavaFX & SWT 6
S Bilder werden sehr langsam geladen AWT, Swing, JavaFX & SWT 4
S Wieso werden die Bilder nicht angezeigt? AWT, Swing, JavaFX & SWT 4
MiMa Fonts, Icons, Bilder in JavaFX Anwendung AWT, Swing, JavaFX & SWT 5
F Bilder zu ausführbarer Jar-Datei hinzufügen AWT, Swing, JavaFX & SWT 5
G JPanel per Drag and Drop JButtons und Bilder ablegen AWT, Swing, JavaFX & SWT 1
G JPanel mit JButtons und Bilder AWT, Swing, JavaFX & SWT 5
Linjutsu Den Inhalten aus einer ArrayList Bilder zuweisen (Kartenspiel) AWT, Swing, JavaFX & SWT 8
M Swing Bilder in Swing anzeigen AWT, Swing, JavaFX & SWT 9
S AffineTranformation Bilder verschwinden von Anzeige bei Pan, Zoom AWT, Swing, JavaFX & SWT 6
G Bilder in javafx Project AWT, Swing, JavaFX & SWT 11
N Bilder auf Button einfügen und mehrmals ändern (ein Button, mehrere ActionListener) AWT, Swing, JavaFX & SWT 2
N eclipse Java, bilder benutzten Funktioniert nicht AWT, Swing, JavaFX & SWT 6
Kirby.exe Bilder in GUI einfügen AWT, Swing, JavaFX & SWT 8
T Bilder bei einem JFrame einfügen AWT, Swing, JavaFX & SWT 4
K JLabel mit Bilder im nicht initialisierten JPanel hinzufügen AWT, Swing, JavaFX & SWT 5
C Bilder so einbinden, dass sie sich ändern AWT, Swing, JavaFX & SWT 6
B JavaFX Bilder in einem Gewissen bereich halten AWT, Swing, JavaFX & SWT 1
J Bilder proportional verkleiner AWT, Swing, JavaFX & SWT 12
E Bilder skalieren AWT, Swing, JavaFX & SWT 4
DaCrazyJavaExpert Swing Bilder überlagern AWT, Swing, JavaFX & SWT 19
A Bilder als Hintergrund AWT, Swing, JavaFX & SWT 2
@SupressWarnings() JavaFX Bilder in executable jar laden AWT, Swing, JavaFX & SWT 5
Sugan JavaFX Bilder drucken AWT, Swing, JavaFX & SWT 0
K JPanel Bilder bei Windows nicht darstellbar AWT, Swing, JavaFX & SWT 6
Sugan Java FX Verzeichnisüberwachung -> Bilder auf GUI anzeigen AWT, Swing, JavaFX & SWT 4
E AWT Bilder als "Array" abspeichern. AWT, Swing, JavaFX & SWT 4
MrSnake Bilder aus Unterordner einfügen AWT, Swing, JavaFX & SWT 2
I 2D-Grafik Bilder Eingefügt, button jetzt im Hintergrund AWT, Swing, JavaFX & SWT 2
C SWT Treeview mit Bilder im Label verändert Expanded Icon AWT, Swing, JavaFX & SWT 1
M Swing JTextPane, Bilder und Text-flow AWT, Swing, JavaFX & SWT 2
A Mit dem Scene Builder eine Collage erstellen (Bilder beziehen aus Flickr) AWT, Swing, JavaFX & SWT 1
thet1983 JTable Bilder AWT, Swing, JavaFX & SWT 6
GenerationLost Bilder an bestimmten Platz einfügen/Objekte visualisieren AWT, Swing, JavaFX & SWT 1
F Bilder in jFrame einfügen AWT, Swing, JavaFX & SWT 3
J Bilder als Variable an einem Objekt speichern AWT, Swing, JavaFX & SWT 3
D 2D-Grafik Bilder anzeigen AWT, Swing, JavaFX & SWT 4
J Bilder auf JPanel (im JScrollPane) nacheinander laden AWT, Swing, JavaFX & SWT 0
vodkaz JFrame,Bilder und Zeitverzögerung AWT, Swing, JavaFX & SWT 2
I SWT Bilder, bzw. ein einzelnes Bild AWT, Swing, JavaFX & SWT 6
M Bilder zeichnen, NullPointer Exception AWT, Swing, JavaFX & SWT 3
Xbody 2D-Grafik JavaFX Bilder transformieren AWT, Swing, JavaFX & SWT 2
C 2D-Grafik Steganographie - Verschlüsselung von Dateien in Bildern - Bilder zeigen schwarze Rechtecke AWT, Swing, JavaFX & SWT 13
P Durch Bilder Scrollen AWT, Swing, JavaFX & SWT 2
K Bilder übereinanderlegen AWT, Swing, JavaFX & SWT 11
windl Querstreifen beim Bilder malen und anpassen an neue CPU AWT, Swing, JavaFX & SWT 12
V Fertige Komponente zum Anzeigen mehrerer Bilder AWT, Swing, JavaFX & SWT 5
Karuka 2D-Grafik Bilder in GridLayout einfügen AWT, Swing, JavaFX & SWT 7
J Bilder in ausführbare jar einbinden AWT, Swing, JavaFX & SWT 7
J Swing Bilder anzeigen in Gridlayout AWT, Swing, JavaFX & SWT 11
H 2D-Grafik Bilder laden ist nicht zuverlässig AWT, Swing, JavaFX & SWT 3
F Bilder ineinander kopieren AWT, Swing, JavaFX & SWT 3
P Bilder verkleinern AWT, Swing, JavaFX & SWT 2
C SWT Mehrere Bilder in GUI laden AWT, Swing, JavaFX & SWT 5
Furtano AWT Skalierung mehrerer Bilder / Histogramme im Fenster AWT, Swing, JavaFX & SWT 4
Furtano AWT mehrere Bilder in einen Frame zeichnen + Layout Manager AWT, Swing, JavaFX & SWT 10
T 2D-Grafik Statisches Hintergrundbild, dynamische Bilder drüber AWT, Swing, JavaFX & SWT 2
C Zwei Bilder übereinander legen AWT, Swing, JavaFX & SWT 1
L [SWT] Daten und Bilder drucken AWT, Swing, JavaFX & SWT 2
S Flickr Bilder in Gui Oberfläche AWT, Swing, JavaFX & SWT 21
L Bilder im JPanel als Hintergrund - Swing AWT, Swing, JavaFX & SWT 2
K Bilder nacheinander einfügen AWT, Swing, JavaFX & SWT 3
H Bilder auf Buttons per Klick tauschen ( Puzzle ) AWT, Swing, JavaFX & SWT 8
H Bilder in Array zufällig anordnen AWT, Swing, JavaFX & SWT 4
P 2D-Grafik Viele Bilder zu einem Video AWT, Swing, JavaFX & SWT 3
J Vergleicher zweier Bilder AWT, Swing, JavaFX & SWT 2
C zwei Bilder nacheinander anzeigen AWT, Swing, JavaFX & SWT 2
L Swing Bilder über andere Bilder laden AWT, Swing, JavaFX & SWT 3
J Bilder überlappen AWT, Swing, JavaFX & SWT 18
3 2D-Grafik Rechtecke auf Bilder legen und auslesen AWT, Swing, JavaFX & SWT 4
M Mehrere Bilder auf einmal anzeigen AWT, Swing, JavaFX & SWT 9
P Swing html mit bilder drin AWT, Swing, JavaFX & SWT 12
E Bilder auf JFrame AWT, Swing, JavaFX & SWT 7
R Bilder über URL einfügen AWT, Swing, JavaFX & SWT 4
F Applet zeigt Bilder nicht an AWT, Swing, JavaFX & SWT 5
M FileChooser Bilder auswählen AWT, Swing, JavaFX & SWT 8
G Swing Bilder zeichnen AWT, Swing, JavaFX & SWT 28
L Swing Bilder im Icons-Ordner AWT, Swing, JavaFX & SWT 4
S SWT Canvas: Flackernde Bilder AWT, Swing, JavaFX & SWT 3
A Bilder vergleichen AWT, Swing, JavaFX & SWT 4
E Swing JTextPane Inhalt(Text und Bilder) als HTML text bekommen AWT, Swing, JavaFX & SWT 3
E AWT Bilder und Java AWT, Swing, JavaFX & SWT 11
P Bilder einfügen AWT, Swing, JavaFX & SWT 4
D Swing JEditorPane mit HTML aber ohne Bilder AWT, Swing, JavaFX & SWT 3
S Swing Kleine Bilder in Panel einfügen AWT, Swing, JavaFX & SWT 13
A AWT Bilder als Link verwenden? AWT, Swing, JavaFX & SWT 11
T SWT Wie Bilder aus JAR-Dateien einbinden? AWT, Swing, JavaFX & SWT 12
S Bilder aus der Google Book Search API auslesen AWT, Swing, JavaFX & SWT 3
J Bilder in JScrollPane zentrieren AWT, Swing, JavaFX & SWT 5
M Bilder in einem Textfeld darstellen AWT, Swing, JavaFX & SWT 2
N Bilder aus Infos generieren lassen. Welches Framework? AWT, Swing, JavaFX & SWT 8

Ähnliche Java Themen

Neue Themen


Oben