Image als Hintergrund eines JPanels

Na_dine

Mitglied
Hallo,
ich habe eine Frage.
Ist es moeglich eine Imagedatei als Hintergrund eines JPanels zu packen. Das Panel ist fast Fenstergross und sollte auch auch moeglich sein, noch Buttons und ein weiteres kleines Panel darauf zu positionieren. Gibt es fuer dies eine entsprechende Methode? vielleicht wie setBackground, nur halt statt Color ein IMAGE?
vielen Dank fuer eure hilfe,
LG, Nadine
 
Hallo,

du müsstest dir eine eigene Klasse schreiben die von JPanel abgeleitet ist. Dort musst du dann die paint()-Methode überschreiben. Da kannst du dann über das Graphics-Object das Image zeichnen. Allerdings darfst du dann nicht vergessen super.paint() aufzurufen.

MFG

zEriX
 
Habe mir jetzt ein eigenes Panel in einer Klasse wie in dem verlinkten Thread erstellt,
bzw. habe es so uebernommen wie es in dem letzten Thread da schon stand.

Was bei mir noch als Fehler angezeigt wird ist die Methode getDefaultToolkit() vom Toolkit. Eclipse macht mir jedoch auch keine Vorschlaege....:confused:
Habt ihr dafuer noch eine idee?

P.S. das Toolkit hab ich schon importiert
 
Hallo,

benutzte statt der Methode des Toolkits die Methode der Klasse ImageIO.

Code:
MyPanel panel = new MyPanel(ImageIO.read(new File("deine Datei"));

MFG

zEriX
 
Dankeschoen fuer eure Loesungen!!

Zu der Klasse ImageIO hab ich noch eine Frage, musst du die auch mit nem Try and Catch block umgeben?
Vielleicht ist das ne dumme frage -aber sitzt grad das erste mal an einer java-applikation :(

wenn ich das mit nem try catch block umgebe, muss ich den namen vom Panel initialisieren:
also

MyPanel panel;
try(
panel = new MyPanel(ImageIO.read(new File("hintergrund.jpg")));
) catch(IOException e) (
e.printStackTrace();
)


cP.add(panel); //cP ist bei mir die contentPane


Bei diesem Code, sagt er mir dennoch immer noch dass ich panel initialisieren muss...? Wie sieht das bei dir aus?
 
Oh man,

ich habe jetzt mein panel so initialisiert wie du es aufgeschrieben hast. dann deinen Code mit ImageIO in einen try and catch block gesetzt und am ende panel der contentPane zugefuegt aber, wenn ich die initialisierung in den block direkt vor try und catch setze sagt mir der compiler, dass ich den namen panel im t-c-block renamen soll.
setze ich die initialisierung ausserhalb meines Blocks, der mainmethode dann sagt der compiler dass ich den modifier, also die initialisierung auf static setzen soll, aber dann wird dein kompletter code als fehlerhaft markiert und es kommen keine vorschlaege mehr
= ( Hilfe....
hast du da noch ne idee? ansonsten muss ich es wohl bei nem simplen grauen hintergrund belassen...
 

Neue Beiträge

Zurück