Titelbild für Menü

Marie97

Mitglied
Hallo ich bin neu hier,
ich arbeite zur Zeit an einem kleinen Projekt. Dort möchte ich ein Jump and Run Spiel programmieren. Im Moment versuche ich dem Menü ein Hintergrundbild zuzuweisen, das klappt allerdings nicht. Könnt ihr mir helfen?
LG Marie
 
Java:
public static void main(String[] args) {
            Menü Menü = new Menü ("Menü");
            Menü.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
            Menü.setSize(480,350);
            Menü.setLayout(null);
            Menü.setVisible(true);
            Menü.add(new Menü());
        }
    
        //Bild
        public Menü(){
            ImageIcon m = new ImageIcon(getClass().getResource("menü.jpg"));
            img3 = m.getImage();
        }
        
        //Bild
        public void paint(Graphics t){
            super.paint(t);
            Graphics2D a2 =(Graphics2D)t;
            a2.drawImage(img3, 0,  0, null);
        }
 
Zuletzt bearbeitet von einem Moderator:
Warum erzeugst du nicht einfach ein BufferedImage ?

Wenn das image im source ordner liegt
Java:
BufferedImage image = ImageIO.read(getClass().getResourceAsStream("deinPfad"));
...
g.drawImage(image, 0,0, null);

Btw : geht nicht , ist keine Fehlerbeschreibung 😉

wenn du dein Bild auf als Hintergrund setzen willst ohne es "selbst" zu zeichnen, dann musst du dieses in ein JLabel verpacken,

Java:
BufferedImage image = ImageIO.getClass().getResourceAsStream("deinPfad"));

JLabel label = new JLabel("", new ImageIcon(image));
meinPanel.add(label);
....

PS: Variablen-Namen werden lowerCamelCase geschrieben 😉

Andere Frage, warum ohne die Basics zu beherrschen ein 2D Plattformer Programmieren wollen, ich finde das ist für den Anfang ein absoluter Overkill 😉 ?

mal abgesehen davon fügst du deinem Menu , ein neues Menu hinzu ^^
Code:
Menü.add(new Menü());

Methodennamen werden ebenfalls lowerCamelCase definiert.

ist Menü ( hier mit Umlaut statt ue ) eine von dir selbst definierte klasse ? wenn ja Erbt diese Klasse von einer der Komponenten aus der Swing API ? Code wäre ganz nice, und voralllem in JAVA Tags bitte.
 
Zuletzt bearbeitet:
Danke für die schnelle Antwort 🙂 zu deiner Frage, wir müssen in der Schule ein Projekt machen zum Thema Informatik oder Wirtschaft. Naja und ich wollte halt unbedingt ein Spiel programmieren. Natürlich bin ich mir durchaus bewusst das das nicht einfach ist, aber ich habe vor gut einer Woche angefangen und habe schon Menü und erstes Level (was noch recht hässlich ausschaut) mit Charakter der gegen Blöcke springt fertig. Ich hab mein Problem jetzt so geregelt:

Java:
public static void main(String[] args) {
            Menü Menü = new Menü ("Menü");
            Menü.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
            Menü.setSize(480, 350);
            Menü.setLayout(null);
            Menü.setVisible(true);
            Menü.setFocusable(true);
        }
    
        //Die Buttons werden mit einigen Einstellungen erstellt.
        public Menü(String title){
            super(title);
            //Bei Druck auf "Spiel starten" soll das Spiel gestartet werden.
            schliessen = new JButton("Spiel starten");
            schliessen.setBounds(320,60,140,40);
            schliessen.addActionListener(this);
            add(schliessen);
            //Bei Druck auf "Spieleinformation" sollen Informationen zum Spiel angezeigt werden.
            info = new JButton("Spieleinformation");
            info.setBounds(320,140,140,40);
            info.addActionListener(this);
            add(info);
            //Bei Druck auf "Spiel beenden" soll das Spiel beendet werden.
            ende = new JButton("Spiel beenden");
            ende.setBounds(320,220,140,40);
            ende.addActionListener(this);
            add(ende);
            //Hintergrundbild wird gezeichnet.
            ImageIcon m = new ImageIcon(getClass().getResource("menü.jpg"));
            img3 = m.getImage();        
        }
        
        //Bild
        public void paint(Graphics g){
            super.paint(g);
            Graphics2D a2 =(Graphics2D)g;
            a2.drawImage(img3, 0,  35, null);
        }
 
Zuletzt bearbeitet von einem Moderator:

Zurück
Oben