Hintergrund in Java GUI?

Heyho,

Ich möchte gerne in meiner GUI einen Hintergrund einfügen, da es sonst so trostlos wirkt. Es soll das Bild "GameBackground.jpg" genutzt werden.

Hier ist der Code:

import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import javax.swing.event.*; 
import ch.aplu.turtle.*;

/**
 *
 * Ein Spiel mit GUI
 *
 * @version 1.0 vom 19.05.2023
 * @abraham_oez 
 */

public class frame extends JFrame {
  private Button bSpielstarten1 = new Button();
  // Anfang Attribute
  private Button bHowtoplay1 = new Button();
  private Button bCopyright1 = new Button();
    private JMenu jMenuBar1_File = new JMenu("Spiel");
      private JMenu jMenuBar1_File_New = new JMenu("Neues Spiel");
  
  private JLabel Label1 = new JLabel();
  // Ende Attribute
  public frame() { 
    // Frame init
    super();
    setDefaultCloseOperation(WindowConstants.DISPOSE_ON_CLOSE);
    int frameWidth = 746; 
    int frameHeight = 562;
    setSize(frameWidth, frameHeight);
    Dimension d = Toolkit.getDefaultToolkit().getScreenSize();
    int x = (d.width - getSize().width) / 2;
    int y = (d.height - getSize().height) / 2;
    setLocation(x, y);
    setTitle("Games by Abie D. Tate");
    setResizable(false);
    Container cp = getContentPane();
    cp.setLayout(null);
    setUndecorated(false);
    cp.setBackground(new Color(0xC0C0C0));
    // Anfang Komponenten
    
    bSpielstarten1.setBounds(288, 104, 176, 48);
    bSpielstarten1.setLabel("Spiel starten");
    bSpielstarten1.addActionListener(new ActionListener() { 
      public void actionPerformed(ActionEvent evt) { 
        bSpielstarten1_ActionPerformed(evt);
      }
    });
    cp.add(bSpielstarten1);
    bHowtoplay1.setBounds(285, 224, 176, 48);
    bHowtoplay1.setLabel("How to play");
    bHowtoplay1.addActionListener(new ActionListener() { 
      public void actionPerformed(ActionEvent evt) { 
        bHowtoplay1_ActionPerformed(evt);
      }
    });
    cp.add(bHowtoplay1);
    bCopyright1.setBounds(288, 352, 176, 48);
    bCopyright1.setLabel("Lizenzen");
    bCopyright1.addActionListener(new ActionListener() { 
      public void actionPerformed(ActionEvent evt) { 
        bCopyright1_ActionPerformed(evt);
      }
    });
    cp.add(bCopyright1);

    // Ende Komponenten
    setVisible(true);
  }  
  
  
  
  public static void main(String[] args) {
    new frame();
  }  
  
  // Anfang Methoden
  public void bSpielstarten1_ActionPerformed(ActionEvent evt) {
    // TODO hier Quelltext einfügen
    
  } 

  public void bHowtoplay1_ActionPerformed(ActionEvent evt) {
    // TODO hier Quelltext einfügen
    
  }  
  
  //Nachdem der Button 'Copyright' gedrueckt wurde, wird die Klasse 'CopyrightFrame' geoeffnet in einem neuen Fenster
  public void bCopyright1_ActionPerformed(ActionEvent evt) {
    
    if (evt.getSource() == bCopyright1) {
      CopyrightFrame copyrightFrame = new CopyrightFrame();
    } 
    
  }  

} 

Java, Programmiersprache, Swing, Java Swing
Informatik (Java) Zwei Frames mit dem selben Konstruktor?

Hey, ich hab eine Aufgabe bekommen, welche ich aber leider nicht wirklich gut lösen kann.
Die Aufgabe besteht darin, dass die Klasse mit JFrame erweitert werden soll und das der Actionlistener implementiert werden soll. Der Frame soll dabei im FlowLayout aus 2 Button bestehen mit den Aufschriften "Weiter" und "Ende".

Wird "Weiter" gedrückt = Erste Frame wird geschlossen und ein zweiter Frame mit NUR dem Button "Ende" wird geöffnet.

Wird "Ende" gedrückt = Alle Frames schließen sich und das Programm wird beendet.

Die beiden Frames sollen dabei mit dem selben Konstruktor erstellt werden.
Das Problem bei mir ist, dass ich es nicht schaffe beim 2. Frame nur "Ende" zu stehen haben.

Kann mir da bitte wer helfen??

Hier ist das, was ich bisher versucht habe:

import java.awt.event.ActionEvent;

import java.awt.event.ActionListener;

import javax.swing.*;

public class zweifenster extends JFrame implements java.awt.event.ActionListener {

  JButton w1;

  JButton e1;

  JPanel p;

  JLabel l;

  public zweifenster(){

    super();

  this.setVisible(true);

  this.setSize(400, 200);

  p = new JPanel();

  l = new JLabel();

  w1 = new JButton("Weiter");

  e1 = new JButton("Ende");

  w1.addActionListener(this);

  e1.addActionListener(this);

  p.add(w1);

  p.add(e1);

  this.add(p);

  this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

  }

  public void actionPerformed(ActionEvent e) {

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

    zweifenster frr = new zweifenster();

    this.dispose(); 

   }

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

      System.exit(0);

    }

  }

  public static void main (String[] args) {

    zweifenster fr = new zweifenster();

}

}

Java, Programmiersprache, Swing, Java Swing
Java Eclipse vermutlich zerschossen?

Hallo Freunde,

bin zurzeit in einem Uni Projekt verwickelt, in welchem ich mithilfe von Java eclipse eine Slot Maschine programmieren muss (natürlich mit einer grafischen Nutzeroberfläche = GUI)

Die Abgabe rückt immer näher und bis jetzt hab ich das Problem, dass ich meine Eclipse software mehrmals zerschossen habe.

Ich hab nun mehrfach eclipse mehrfach deinstalliert und erneut heruntergeladen, ich hab dabei auch die Verknüpfungen im Explorer gelöscht sodass sich nichts überschreibt oder es zu Dopplungen kommt. Dazu habe ich immer den Windowbuilder als Ergänzung heruntergeladen. (Es hat eine Zeitlang geklappt)

Nun bekomme ich egal was ich mache mit dem Window builder, diese Exeption angezeigt:

Exception in thread "main" java.lang.Error: Unresolved compilation problems:

EventQueue cannot be resolved

JFrame cannot be resolved to a type

at dertest/dertest01.dasfenster.main(dasfenster.java:15)

Ich hab bereits in chatgpt die exeption eingegeben, dieser hat mir folgende Problematiken aufgelistet:

  1. Überprüfen Sie, ob alle benötigten Bibliotheken im Build-Pfad des Projekts enthalten sind. Klicken Sie mit der rechten Maustaste auf das Projekt in Eclipse und wählen Sie "Build Path" und dann "Configure Build Path". Überprüfen Sie dann die Registerkarte "Libraries", um sicherzustellen, dass alle erforderlichen Bibliotheken vorhanden sind.
  2. Wenn die Bibliotheken vorhanden sind, können Sie versuchen, das Projekt neu zu erstellen. Klicken Sie mit der rechten Maustaste auf das Projekt und wählen Sie "Clean" aus dem Menü. Dadurch wird das Projekt sauber aufgebaut und alle fehlenden Abhängigkeiten werden automatisch heruntergeladen.
  3. Wenn das Problem weiterhin besteht, können Sie versuchen, das Projekt neu zu generieren. Klicken Sie dazu auf die Schaltfläche "Design" in der Eclipse-Oberfläche, um den Windowbuilder zu öffnen. Klicken Sie dann auf "Generate Code" oder "Generate Event Handler", um sicherzustellen, dass der Code korrekt generiert wird.

Ich bin mit den Anweisungen die Libaries neu zu konfigurieren oder etwas in Eclipse neu umzustellen überfragt.

Hättet ihr vlt. Tipps oder Möglichkeiten das Problem zu lösen -> Eventuell auch um eclipse neu zu installeren und "die Alte Software" zu deinstallieren.

Entschuldige mich jetzt schonmal für Rechtschreibfehler oder falsche Formulierungen, bin nicht so in dem Thema drin : )

mit freundlichen Grüßen und Vielen Dank

IT, programmieren, Java, codieren, Eclipse, Informatik, Programmiersprache, Programmieren Java

Meistgelesene Fragen zum Thema Java