Bild auf JPanel

Status
Nicht offen für weitere Antworten.

yeTh7

Mitglied
Hallo!

Irgendwie schaffe ich es nicht ein Bild auf einen JPanel zu zeichnen.

Hier der Code:
Code:
import javax.swing.*;

class TestBild extends JFrame
{
	public static void main(String[] args)
	{
		new TestBild();
	}
	
	TestBild()
	{
		setSize(300,300);
		setLocation(200,200);
      setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

		Picture pic = new Picture("bild.jpg");
		JPanel p = new JPanel();
		getContentPane().add(p);
		p.add(pic);
		pic.setVisible(true);

		setVisible(true);
	}
}
Code:
import javax.swing.*;
import java.awt.*;

class Picture extends JComponent
{
	Image image;
	
	Picture(String file)
	{
		super();
		image = Toolkit.getDefaultToolkit().getImage(file);
	}
	
	public void paintComponent(Graphics g)
	{
		g.drawImage(image,30,30,this);
	}
}

Auf der blosen Content-Pane wird das Bild hingegen angezeigt...
Weiß zufällig jemand woran das liegen könnte?

Danke!
 
Nach einigen Versuchen habe ich die Lösung nun selbst gefunden.

Warum auch immer, es funktioniert wenn man BorderLayout verwendet wie die Standard-Content Pane.

Hat vielleicht jemand eine Erklärung warums mit FlowLayout beispielsweise nicht hinhaut?
 
Du machst es dir hier zu kompliziert. Benutze die JLabel-Komponente mit der Methode label.setIcon(new ImageIcon(ImageIO.read(...))).
 
Status
Nicht offen für weitere Antworten.

Neue Themen


Zurück
Oben