Java Aufm Schlauch: Hintergrundbild in ein Fenster?

ReVo

Lieutenant
Registriert
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:
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:
BerniG schrieb:
Ädit: Was ist überhaupt die Board-Klasse? Ne Standard-Java-Klasse ist das ja nicht. Sprichst du da von irgendnem Framework oder Ähnlichem?

Sry, habe noch vergessen einzufügen:

PHP:
public class Board extends JPanel {
...
 
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.
 
Hast du denn auch alles notwendige importiert?
 
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.
 
Hi,

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

Gruß
 
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...
 
Zurück
Oben