2D-Grafik Hintergrundbild für JFrame

R

Ro0kie

Gast
Liebe Java-Programmierer oder sonistige Coder !

Ich suche schon verzweifelnd seit 3 Tagen eine Lösung für mein Problem.:frown:
Ich würde gern ein Hintergrundbild für mein JFrame erstellen nur das Problem ist ich weiß nicht wie ich die ganzen Code-Beispiele die ich in Google gefunden hab auf mein Projekt über tragen soll?:confused:
mein Google raucht schon und ich komme trotzdem nicht wieter :notrust:

Wie folgt sieht es aus 2 Klassen + eine innere Klasse:

Klasse BallspielPanel:
Java:
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
/**
 *Panel für die Ballspiel-App. .
 *
 * @author Martin S.
 * @version 2011-01-24
 */
public class BallspielPanel extends JPanel {

    private Button east,west,south,north;
    private JLabel ball,feld;
    private ImageIcon icon,icon2;
    private JPanel panel;
    private int x,y,width,height;
    /**
     * Standard-Konstruktor zum deklarieren,initaliserien und hinzufügen der
     * GUI-Elemente.
     */
    public BallspielPanel(){
        //Int-Variablen init.
        x =5;
        y =30;
        width =75;
        height =75;

        //Layout setzen
        setLayout(new BorderLayout());


        //Spielfigur, und Spielfeld init. und hinzufügen
        /**
         * Fügt ein Icon auf den Button hinzu.
         * Methode aus der Java-API
         */
        icon = new ImageIcon (BallspielPanel.class.getResource("fball.png"));
        icon2 = new ImageIcon (BallspielPanel.class.getResource("field.png"));
        ball =new JLabel(icon);
        
        
        

        //Buttons init. und hinzufügen
        ball.setBounds(x,y,width,height);
        feld.setBounds (x,y,500,550);
        east = new Button("O");
        west = new Button("W");
        south = new Button("S");
        north = new Button("N");

        add(east,BorderLayout.EAST);
        add(west,BorderLayout.WEST);
        add(south,BorderLayout.SOUTH);
        add(north,BorderLayout.NORTH);

        //Panel init. und hinzufügen
        panel = new JPanel();
        add(panel,BorderLayout.CENTER);
        panel.setLayout(null);
        panel.add(ball);
        
        
        
        
        ////ActionListener Objekt erzeugen
        BallspielAction h =new BallspielAction();
        east.addActionListener(h);
        west.addActionListener(h);
        south.addActionListener(h);
        north.addActionListener(h);
        }

   /**
    *Innere Klasse, für die einzelnen Aktionen.
    *
    */
    private class BallspielAction implements ActionListener{

            /**
             * Methode,für die einzelen Buttonklicks,usw... .
             *
             * @param e
             */
             public void actionPerformed (ActionEvent e){

                 //Ballsteuereung erstellen

                 if(e.getSource()==east){

                     //Begrenzung rechts
                     if(x+50<panel.getWidth()-75){
                         ball.setBounds(x=x+75,y,width,height);   
                     }
                 }

                 if(e.getSource()==west){

                     //Begrenzung links
                     if(x>75){
                        ball.setBounds(x=x-50,y,width,height);
                     }
                     else{
                        ball.setBounds(0, y, width, height);
                        x=0;
                     }
                 }

                  if(e.getSource()==north){

                    //Begrenzung oben
                    if(y>50){
                         ball.setBounds(x,y=y-50,width,height);
                     }
                     else{
                          ball.setBounds(x,0,width,height);
                          y=0;
                      }
                 }

                 //Begrenzung unten
                  if(e.getSource()==south){
                      if(y+50<panel.getHeight()-75){
                        ball.setBounds(x,y=y+50,width,height);
                      }
                      else{
                        ball.setBounds(x,panel.getHeight()-75, width, height);
                        y=panel.getHeight()-75;
                      }
                 }




             }
        

        

        
        

    }
}
Klasse BallspielGUI:
Java:
import javax.swing.JFrame;
import java.awt.*;
/**
 *Spiel für die Langeweile.
 * Durch drücken einzelner Buttons wird eine Spielfigur bewegt.
 * Ziel des Spieles gibt es keines.
 *
 * @author Martin S.
 * @version 2011-02-24
 */
public class BallspielGUI extends JFrame {
        /**
     *Standard-Main Methode
     *
     * @param args
     */
    public static void main(String[] args){
         new BallspielGUI();
    }

    /**
     *Standard-Konstruktor zum setzen der Fenstergröße,Name,Schließ-Aktion
     * und der Sichtbarkeit.
     */
    public BallspielGUI(){
        //Titelzeile setzen
        setTitle("Futball");

        //Schließ-Aktion setzen
        setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

    //ZiffernanzeigePanel einfügen
    Container Con = this.getContentPane();
    Con.add(new BallspielPanel());

    //Sichtbarkeit des Fensters einstellen
    setVisible(true);

    //Fixe Fenstergröße setzen
    setSize(500,550);
    setResizable ( false );



    }
}

Nun hätte ich gerne in der Klasse BallspielPanel direkt unter dem Zeilen Kommentar + Blocksatzkommentar ://Spielfigur, und Spielfeld init. und hinzufügen
Ein Hintergrundbild eingefügt.Ich bitte um einfache Erklärungen da ich mit der Schule erst im 2 Lehrjahr bin. :(

Danke im voraus :smile::thumbup:

lG Ro0kie
 

Lograine

Mitglied
du hast einfach nur vergessen dein feld zu initialisieren- tu das einfach nach der initialisierung von ball mit
[c]feld = new JLabel(icon2);[/c] und es klappt. wenn du dein programm ohne die zeile startest gibt es eine nullpointer exception das weist ziemlich häufig auch nicht initialsierte variablen hin- so kannst du solche fehler auch schnell selber ausmerzen.
 
R

Ro0kie

Gast
Also ich hab den Quellcode jz nochmals über arbeitet, aber im JFrame wird jz gar nichts mehr angezeigt außer die Buttons vom Border Layout, ich weiß nicht aber irgendwie will das mit dem JLayerPane nicht hin hauen :

Java:
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
/**
 *Panel für die Ballspiel-App. .
 *
 * @author Martin S.
 * @version 2011-02-24
 */
public class BallspielPanel extends JPanel {

    private Button east,west,south,north;
    private JLabel ball,feld;
    private ImageIcon icon,icon2;
    private JPanel panel,panel2,hintergrundpanel;
    private JLayeredPane hintergrund;
    private int x,y,width,height;
    private int fx,fy,fwidth,fheight;
    /**
     * Standard-Konstruktor zum deklarieren,initaliserien und hinzufügen der
     * GUI-Elemente.
     */
    public BallspielPanel(){
        //Ball Int-Variablen init.
        x =5;
        y =30;
        width =75;
        height =75;
        //Feld Int-Variablen
        fx =0;
        fy =0;
        fwidth =500;
        fheight =500;

        //Layout setzen
        setLayout(new BorderLayout());


        //Spielfigur, und Spielfeld init.
        /**
         * Methoden aus der Java-API
         */
        icon = new ImageIcon (BallspielPanel.class.getResource("fball.png"));
        icon2 = new ImageIcon (BallspielPanel.class.getResource("field.png"));
        ball =new JLabel(icon);
        feld =new JLabel (icon2);
        ball.setBounds(x,y,width,height);
        feld.setBounds(fx,fy,fwidth,fheight);
        hintergrund =new JLayeredPane();
        hintergrundpanel = new JPanel();
        hintergrundpanel.add(hintergrund);
        add(hintergrundpanel,BorderLayout.CENTER);
        hintergrund.add(feld,new Integer(0));
        hintergrund.add(ball,new Integer (1));
        
        

        //Buttons init. und hinzufügen
        east = new Button("O");
        west = new Button("W");
        south = new Button("S");
        north = new Button("N");

        add(east,BorderLayout.EAST);
        add(west,BorderLayout.WEST);
        add(south,BorderLayout.SOUTH);
        add(north,BorderLayout.NORTH);

        //Panel init. und hinzufügen

        //Panel
        panel = new JPanel();
        panel.setLayout(null);
        panel.add(ball);

        //2.Panel
        panel2 =new JPanel();
        panel2.setLayout(null);
        panel2.add(feld);
        
        
        
        
        ////ActionListener Objekt erzeugen
        BallspielAction h =new BallspielAction();
        east.addActionListener(h);
        west.addActionListener(h);
        south.addActionListener(h);
        north.addActionListener(h);
        }

   /**
    *Innere Klasse, für die einzelnen Aktionen.
    *
    */
    private class BallspielAction implements ActionListener{

            /**
             * Methode,für die einzelen Buttonklicks,usw... .
             *
             * @param e
             */
             public void actionPerformed (ActionEvent e){

                 //Ballsteuereung erstellen

                 if(e.getSource()==east){

                     //Begrenzung rechts
                     if(x+50<panel.getWidth()-75){
                         ball.setBounds(x=x+75,y,width,height);   
                     }
                 }

                 if(e.getSource()==west){

                     //Begrenzung links
                     if(x>75){
                        ball.setBounds(x=x-50,y,width,height);
                     }
                     else{
                        ball.setBounds(0, y, width, height);
                        x=0;
                     }
                 }

                  if(e.getSource()==north){

                    //Begrenzung oben
                    if(y>50){
                         ball.setBounds(x,y=y-50,width,height);
                     }
                     else{
                          ball.setBounds(x,0,width,height);
                          y=0;
                      }
                 }

                 //Begrenzung unten
                  if(e.getSource()==south){
                      if(y+50<panel.getHeight()-75){
                        ball.setBounds(x,y=y+50,width,height);
                      }
                      else{
                        ball.setBounds(x,panel.getHeight()-75, width, height);
                        y=panel.getHeight()-75;
                      }
                 }




             }
        

        

        
        

    }
}
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
J Hintergrundbild für JFrame AWT, Swing, JavaFX & SWT 6
F hintergrundbild für jtable als jscrollpane AWT, Swing, JavaFX & SWT 10
G Hintergrundbild für JPanel AWT, Swing, JavaFX & SWT 4
T Hintergrundbild einfügen AWT, Swing, JavaFX & SWT 1
L Hintergrundbild im Fenster darstellen AWT, Swing, JavaFX & SWT 9
R Java, GUI, Hintergrundbild, Image, AWT, Swing, JavaFX & SWT 4
H Hintergrundbild in einem Programm AWT, Swing, JavaFX & SWT 4
snipesss Hintergrundbild in JOptionPane.showInputDialog? AWT, Swing, JavaFX & SWT 4
M Hintergrundbild wird nicht angezeigt AWT, Swing, JavaFX & SWT 1
L [Slick2d] Sidescroller/Hintergrundbild sehr langsam AWT, Swing, JavaFX & SWT 3
O Vollbildmodus mit Hintergrundbild AWT, Swing, JavaFX & SWT 8
A jpanel mit gridbaglayout auf hintergrundbild AWT, Swing, JavaFX & SWT 7
Mr. Pink AWT Anzeigeproblem JPanel/Hintergrundbild AWT, Swing, JavaFX & SWT 1
H Swing Hintergrundbild in einen JFrame einfügen AWT, Swing, JavaFX & SWT 7
T Hintergrundbild in JTextPane fixieren AWT, Swing, JavaFX & SWT 2
M Auf einem Hintergrundbild zeichnen AWT, Swing, JavaFX & SWT 2
SexyPenny90 Hintergrundbild mit Swing AWT, Swing, JavaFX & SWT 3
C Eigenes Hintergrundbild einfügen AWT, Swing, JavaFX & SWT 6
P AWT Hintergrundbild in Hauptframe AWT, Swing, JavaFX & SWT 3
T 2D-Grafik Statisches Hintergrundbild, dynamische Bilder drüber AWT, Swing, JavaFX & SWT 2
F Hintergrundbild im Frame AWT, Swing, JavaFX & SWT 11
H Hintergrundbild in jTextArea AWT, Swing, JavaFX & SWT 4
N AWT Hintergrundbild AWT, Swing, JavaFX & SWT 2
E JButton mit hintergrundbild AWT, Swing, JavaFX & SWT 4
J Swing Hintergrundbild auf einem JFrame AWT, Swing, JavaFX & SWT 7
G Swing Komponenten dem Hintergrundbild des JPanels anpassen? AWT, Swing, JavaFX & SWT 6
B Wie ein Hintergrundbild einfügen??? AWT, Swing, JavaFX & SWT 18
I JPanel mit Hintergrundbild, setOpaque AWT, Swing, JavaFX & SWT 10
C Label Hintergrundbild mit Text AWT, Swing, JavaFX & SWT 6
S Applet - Aerger mit dem Hintergrundbild - JLabel und JTextfield AWT, Swing, JavaFX & SWT 7
J Hintergrundbild des JFrames lässt Textboxen verschwinden? AWT, Swing, JavaFX & SWT 4
H hintergrundbild fixieren AWT, Swing, JavaFX & SWT 3
N Swing Hintergrundbild in einer JScrollpane AWT, Swing, JavaFX & SWT 2
dl85hej Hintergrundbild AWT, Swing, JavaFX & SWT 2
C JPanel mit Hintergrundbild AWT, Swing, JavaFX & SWT 30
U JList mit Hintergrundbild hinterlegen und noch ne Frage AWT, Swing, JavaFX & SWT 4
C Hintergrundbild ohne Repaint AWT, Swing, JavaFX & SWT 9
G Jpanel mit Hintergrundbild füllen? AWT, Swing, JavaFX & SWT 6
G 2x JPanel im JScrollPane (Hintergrundbild in JScrollPane) AWT, Swing, JavaFX & SWT 9
E JPanel mit Hintergrundbild AWT, Swing, JavaFX & SWT 10
hdi panel hintergrundbild falsch implementiert ? AWT, Swing, JavaFX & SWT 9
Kidao Das Hintergrundbild überdeckt die Swing-Komponente AWT, Swing, JavaFX & SWT 5
C JdesktopPane Hintergrundbild AWT, Swing, JavaFX & SWT 6
N Hintergrundbild setzen AWT, Swing, JavaFX & SWT 4
L Frame mit Hintergrundbild? AWT, Swing, JavaFX & SWT 4
S JTextPane mit Hintergrundbild AWT, Swing, JavaFX & SWT 9
K Hintergrundbild an JFrame anpassen AWT, Swing, JavaFX & SWT 9
U bewegtes Hintergrundbild AWT, Swing, JavaFX & SWT 2
G Hintergrundbild auf JFrame oder JPanel AWT, Swing, JavaFX & SWT 3
F Text besser lesbar über Hintergrundbild AWT, Swing, JavaFX & SWT 6
S Hintergrundbild an Größe des JFrames anpassen AWT, Swing, JavaFX & SWT 4
G Problem mit Menü/Button auf Hintergrundbild AWT, Swing, JavaFX & SWT 10
D JTable - Hintergrundbild in Cell AWT, Swing, JavaFX & SWT 6
M Hintergrundbild und grafischer Button (Transparenz Probleme) AWT, Swing, JavaFX & SWT 3
H Hintergrundbild im Panel verschwindet sofort AWT, Swing, JavaFX & SWT 6
B Problem mit Hintergrundbild AWT, Swing, JavaFX & SWT 12
I Hintergrundbild bei awt container AWT, Swing, JavaFX & SWT 9
E hintergrundbild einfügen!! AWT, Swing, JavaFX & SWT 2
Juelin setzen background color für selected Row im Tableview AWT, Swing, JavaFX & SWT 21
Juelin Für Java-Spezialisten AWT, Swing, JavaFX & SWT 4
H JTabel - RowFilter Daten für Berechnung filtern AWT, Swing, JavaFX & SWT 6
I JavaFX JavaFx-Anwendung für die Erstellung einer Windows-Anwendung? AWT, Swing, JavaFX & SWT 6
M Eigene Java Klasse für allgemeine Grafikelemente AWT, Swing, JavaFX & SWT 8
M Vokabelprogram - Schleife für Liste soll schrittweise durchlaufen werden AWT, Swing, JavaFX & SWT 3
tommybalbor JavaFx Anwendung klappt nicht für macOs Nutzern, wenn ich zwei dependecies bei maven hinzufüge AWT, Swing, JavaFX & SWT 6
I Libraries für AWT für andere Grafik-Frameworks tauglich machen AWT, Swing, JavaFX & SWT 6
R auto. Importanweisungen für javafx funktioniert in Eclipse nicht mehr AWT, Swing, JavaFX & SWT 4
komplettlost Vollbildmodus für MacOs Nutzer geht nicht AWT, Swing, JavaFX & SWT 13
D JavaFX Schadensberechnung für Kartenspiel AWT, Swing, JavaFX & SWT 1
P JTable Listener für die Änderung einzelner Zellen oder Rows AWT, Swing, JavaFX & SWT 2
Jose05 JavaFX: eigene FXML-Datei für einen Button AWT, Swing, JavaFX & SWT 3
L actionListener für Button AWT, Swing, JavaFX & SWT 97
izoards Textfeld für Zeit AWT, Swing, JavaFX & SWT 4
CptK Wie funktioniert contains() für Path2D.Double AWT, Swing, JavaFX & SWT 10
T Getter und Setter für eine Stage AWT, Swing, JavaFX & SWT 6
P Swing Programm hängt sich bei Buttondruck auf? (GUI für "Chatbot" erstellen) AWT, Swing, JavaFX & SWT 15
T Button für GUI programmieren AWT, Swing, JavaFX & SWT 1
Z Switch Case für Buttons AWT, Swing, JavaFX & SWT 8
M Hough-Transformation für Kreise und andere Formen AWT, Swing, JavaFX & SWT 3
kodela HTML-tags für JLabel AWT, Swing, JavaFX & SWT 9
E Keystroke für Ausschneiden läßt sich nicht ändern AWT, Swing, JavaFX & SWT 2
M Swing Cell Renderer für Zeilenumbruch in JTable AWT, Swing, JavaFX & SWT 0
MiMa Package Struktur für GUI Programmierung AWT, Swing, JavaFX & SWT 26
N JavaFX 1 Listener für mehrere ChoiceBoxen AWT, Swing, JavaFX & SWT 3
B eclipse für JavaFx setuppen AWT, Swing, JavaFX & SWT 4
K Swing Struktur für TreeTable rekursiv aufbauen AWT, Swing, JavaFX & SWT 17
A Swing JTextField an Button übergeben für Popup-Fenster funktioniert nicht AWT, Swing, JavaFX & SWT 3
H Ein Patten für das Gluon Mobile Framework AWT, Swing, JavaFX & SWT 7
J Gibt es einen Grund für 16x16 anstatt z.B. 15x15 Tiles ? AWT, Swing, JavaFX & SWT 10
F JFormattedTextField für kg und Währung AWT, Swing, JavaFX & SWT 6
V Swing für jedes Kästchen eine eigene Farbe AWT, Swing, JavaFX & SWT 2
F Wie bekomme ich den Wert der ComboBox in eine Variable gespeichert welche ich für meinen ActionListener nutzen kann? AWT, Swing, JavaFX & SWT 3
Soloeco JavaFX Dreifachklick für MenuButton erforderlich AWT, Swing, JavaFX & SWT 2
L JavaFX Lösungsvorschläge für dieses coole Control AWT, Swing, JavaFX & SWT 8
looparda Suche Lib für Visualisierung von Graphen AWT, Swing, JavaFX & SWT 12
G LayoutManager Beliebige Anzahl von Panels für LayoutManager AWT, Swing, JavaFX & SWT 3
L Ein Actionlistener für ein Textfeld, anstatt viele Actionlistener für ein Textfeld AWT, Swing, JavaFX & SWT 7
S Swing Finde Grund für NullPointerExeption nicht. AWT, Swing, JavaFX & SWT 2
W JavaFX (j)Unittests für GUI AWT, Swing, JavaFX & SWT 0
B JavaFX JavaFX TableView PropertyValueFactory für Werte aus HashMap AWT, Swing, JavaFX & SWT 2

Ähnliche Java Themen

Neue Themen


Oben