Bild wird auf Frame nicht angezeigt! Keine Fehlermeldung

  • Themenstarter Themenstarter anfaenger123
  • Beginndatum Beginndatum
A

anfaenger123

Gast
Das Bild beispielbild.gif soll auf dem mainFrame angezeigt werden, aber es erscheint nur der leere Frame (mit grauem Hintergrund). Es kommt aber auch keine Fehlermeldung! Ich habe das Bild in den Ordner getan, in dem auch die Datei ist. Wo liegt der Fehler? Danke im Voraus!

Java:
import java.awt.GridBagConstraints;
import java.awt.GridBagLayout;
import javax.swing.ImageIcon;
import javax.swing.JFrame;
import javax.swing.JLabel;

class Layout {
	
	public static void main(String[] args) {
		JFrame mainFrame = new JFrame("Bilder");
		mainFrame.setSize(500, 500);
		GridBagLayout gridbag = new GridBagLayout();
		GridBagConstraints eig = new GridBagConstraints();
		mainFrame.setLayout(gridbag);
		
		eigenschaften(eig, 0, 0, 1, 1, 100, 100);
		eig.fill = GridBagConstraints.BOTH;
		JLabel but = new JLabel(new ImageIcon("beispielbild.gif"));
		gridbag.setConstraints(but, eig);
		mainFrame.add(but);
		
		mainFrame.setVisible(true);
	}


	private static void eigenschaften(GridBagConstraints gbc, int gx, int gy,
			int gw, int gh, int wx, int wy) {
		gbc.gridx = gx;
		gbc.gridy = gy;
		gbc.gridwidth = gw;
		gbc.gridheight = gh;
		gbc.weightx = wx;
		gbc.weighty = wy;
	}
}
 
Zuletzt bearbeitet von einem Moderator:
Die offensichtliche Fehlerquelle erst einmal ausschließen: Kommentiere den ganzen GridBag-Mist aus und verwende ein FlowLayout oder BorderLayout oder so. Wenn es dann immer noch nicht anzeigt, sehen wir weiter.

Ansonsten lass dir z.B. mal Höhe und Breite des Bildes ausgeben. Ist beides 0 oder bekämest du eine NullPointerException, wäre das unvorteilhaft.
 
Ich hab mal ein bisschen rumprobiert. Das Bild war doch im falschen Ordner. Jetzt geht alles. Und leider kann ich kein anderes Layout benutzen, weil es ja nicht bei dem einen Bild bleibt und für meinen Fall sonst mehrere Layouts verschachtelt werden müssten.
 
Das mit dem anderen Layout war nur zum Testen gedacht. GridBagLayout ist bekannt dafür, ziemlich unerwartete Ergebnisse zu liefern, wenn nicht alles 100% stimmt. Hätte ja sein können, dass dein Bild da war, aber auf Breite 0 zusammengeschoben wurde.
 

Neue Themen


Zurück
Oben