Swing Bild wird nicht auf JLabel angezeigt

JavaMeetsBlueJ

Bekanntes Mitglied
Hallo Forum,
Kann mir jemand sagen, wieso das Bild nicht angezeigt wird? Es befindet sich im selben Package wie die Klassen.

Java:
import javax.swing.*;

public class Gui extends JFrame {
	
	JPanel hauptPanel = new JPanel();
	JLabel bildLabel = new JLabel(new ImageIcon("DSC_8223.jpg"));	
	
	public Gui()
	{
	  setSize(500, 300);
	  setTitle("Ich besitze keinen Titel");
	  setLocationRelativeTo(null);
	  setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
	  
	  add(hauptPanel);
	  hauptPanel.add(bildLabel);	  
	 
	}
}


MfG
 
Zuletzt bearbeitet:
Java:
public class Gui extends JFrame {
    
    JPanel hauptPanel = new JPanel(new BorderLayout());
    JLabel bildLabel = new JLabel(new ImageIcon("DSC_8223.jpg"));
 
    public Gui()
    {
      setSize(500, 300);
      setTitle("Ich besitze keinen Titel");
      setLocationRelativeTo(null);
      setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
      
      setContentPane(hauptPanel);
      hauptPanel.add(bildLabel, Borderlayout.CENTER);
    }
}

Geht denn das?
Ost das Bild denn überhaupt geladen?
 
Also ein meinem Buch wird es exakt so gemacht, dass das Icon gleich als Parameter an das Label übergeben wird.... wie macht man das denn normalerweise? Anscheinend ja nicht so.
MfG
 
Ne... da passiert genausowenig wie bei mir.... . Das fenster wird ja samt Titel angezeigt und auch wenn ich sage bildLabel("XYZ"), dann funktioniert das... nur halt nicht mit Bild.
MfG
 

Anhänge

  • PackageMitBild.png
    PackageMitBild.png
    5 KB · Aufrufe: 36
Zuletzt bearbeitet:
Java:
ImageIcon(ImageIO.read(Gui.class.getResource("DSC_8223.jpg")));
Damit lädst du das Bild zuverlässig. Ansonsten scheint da das Toolkit Anwendung zu finden und das sollte man generell vermeiden.
 
Exception handelt man mit einem try-catch-block
Java:
try
{
  // Hier ausführen, was eine Exception werfen kann
}
catch(Exception e)
{
  // Hier entweder den Fehler behandeln oder zumindest den stacktrace ausgeben (e.printStackTrace())
}
 
Das hier funktioniert zumind bei mir:

Java:
import java.io.IOException;

import javax.imageio.ImageIO;
import javax.swing.ImageIcon;
import javax.swing.JFrame;
import javax.swing.JLabel;

public class ImageLabelTest {
	
	private JLabel lbl;
	private ImageIcon icon;
	
	
	public ImageLabelTest(){
		
		try {
			icon = new ImageIcon(ImageIO.read(this.getClass().getResource("bla.jpg")));
		} catch (IOException e) {
			System.err.println("Da läuft was schief beim Bildladen!");
			e.printStackTrace();
		}
		
		lbl = new JLabel(icon);
		
	}
	
	public JLabel getImageLabel(){
		return lbl;
	}
	
	public static void main(String[] args) {
		ImageLabelTest lblClass = new ImageLabelTest();
		JFrame frame = new JFrame();
		frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		frame.add(lblClass.getImageLabel());
		frame.pack();
		frame.setLocationRelativeTo(null);
		frame.setVisible(true);
	}

}

Gruß Vanny
 

Zurück
Oben