Java Aufm Schlauch: Hintergrundbild in ein Fenster?

ReVo

Lieutenant
Dabei seit
Jan. 2006
Beiträge
567
Hallo,

eigentlich wollte ich mal kurz eben in ein Kreis(g.fillOval(...)) ein Bild zu legen. Schnell habe ich gemerkt, dass ich nichtmal das einfachste kann: Hintergrundbild für ein Fenster. Gucken wir uns das mal an:
PHP:
public class Board extends JPanel {
        public static void main(String[] args) {
    
               Board b = new Board();
               JFrame f = new JFrame();
        
               b.setBackgroundcolor(Color.PINK); //Klappt wunderbra, Hintergrund ist komplett Pinky...jetzt will ich aber ein BILD im Hintergrund:

       
               //b.setBackgroundImage("D:/Java/bild.gif"); 
               //wurde BackgroundImage abgeschaffen? xD ... weiß nicht aber da wird nur fehler angezeigt dass sowas nicht existiert
...
Dachte, dass ich das genau so mache wie mit dem color. Also ich nehme an das wurde nicht abgeschaffen, sondern ich bin etwas verpeilt(da wenn ich mit eclipse nach b. irgendwas image suche findet er nichts). Wo setze ich das jetzt genau ein bzw. was mache ich falsch?

Danke und Gruß
 
Zuletzt bearbeitet:

BerniG

Lieutenant
Dabei seit
Okt. 2004
Beiträge
620
Ich hab noch nie von einer derartigen Funktion in Java gehört. Normal baut man ein JPanel und überschreibt dort die paintComponent-Methode. Finden sich genug Codebeispiele bei google.

Ädit: Was ist überhaupt die Board-Klasse? Ne Standard-Java-Klasse ist das ja nicht. Sprichst du da von irgendnem Framework oder Ähnlichem?
 
Zuletzt bearbeitet:

ReVo

Lieutenant
Ersteller dieses Themas
Dabei seit
Jan. 2006
Beiträge
567

BerniG

Lieutenant
Dabei seit
Okt. 2004
Beiträge
620
Ja wenn du die Klasse schon selber baust, musst du halt auch setBackgroundImage() selber implementieren und in der paintComponent-Methode deinen Hintergrund malen (mittels drawImage()). Standardmäßig kann ein JPanel das halt nicht.
 

SanBo

Lt. Commander
Dabei seit
Apr. 2008
Beiträge
1.335
Hast du denn auch alles notwendige importiert?
 

Firestorm-

Lt. Commander
Dabei seit
Okt. 2006
Beiträge
2.015
Das ganze geht auch über den Umweg eines JLabels. Einfach ein JLabel erstellen, den Pfad mit new ImageIcon festlegen und das ganze zum Panel hinzufügen. In etwa wie folgt:



Code:
  JPanel p = new JPanel();
		
		JLabel backImgPanel = new JLabel(new ImageIcon("C:\\guido.jpg"));
		backImgPanel.setLayout(null);
		backImgPanel.setOpaque(false);
		backImgPanel.setBounds(1,1,591,414);
		
		p.add(backImgPanel);
		
		c.add(p);
Die Methode setBackgroundImage() o.ä. gibts so in Java nicht. D.h. entweder selber implementieren oder den Umweg über JLabel nutzen.
 

ReVo

Lieutenant
Ersteller dieses Themas
Dabei seit
Jan. 2006
Beiträge
567
Hi,

danke für die Hilfe, anscheinend habe ich irgendwie doch was verwechselt :)

Gruß
 

Fatal Error

Lt. Junior Grade
Dabei seit
Jan. 2009
Beiträge
294
du könntest aber auch die paintComponent(Graphics g) methode von JPanel überschreiben und dann mithilfe des Graphics Objekts dein Bild in den Hintergrund zeichnen

edit: ups, hab den beitrag von BerniG übersehen...
 
Top