JFrame in den Hintergrund verschieben

Elyt

Mitglied
Guten Tag liebe Mitglieder,
Die einzige Frage, die ich habe ist, wie ich wenn ich beispielsweise 2 jLabels habe, eines davon quasi während einer möglichen Überlappung davor und das andere dahinter anzeigen lassen kann. Finde da irgendwie nichts zu. Hoffe mir kann jemand helfen, Danke.
Das Spielfeld soll hinter allen Feldern sein:

Java:
public class Spieloberflaeche2 extends JFrame {
    
  private JLabel jLabelSpielfeld = new JLabel();
  private JButton bWuerfeln = new JButton();
  private JLabel jLabelAugenzahl = new JLabel();
  private JLabel Feld0 = new JLabel();
  private JLabel Feld1 = new JLabel();
  private JLabel Feld2 = new JLabel();
  private JLabel Feld3 = new JLabel();
  private JLabel Feld4 = new JLabel();
  private JLabel Feld5 = new JLabel();
  private JLabel Feld6 = new JLabel();
  private JLabel Feld7 = new JLabel();
  private JLabel Feld8 = new JLabel();
  private JLabel Feld9 = new JLabel();
  private JLabel Feld10 = new JLabel();
  // Ende Attribute
 
  public Spieloberflaeche2() {
    // Frame-Initialisierung
    super();
    setDefaultCloseOperation(WindowConstants.DISPOSE_ON_CLOSE);
    int frameWidth = 1412;
    int frameHeight = 1048;
    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("Spieloberflaeche2");
    setResizable(false);
    Container cp = getContentPane();
    cp.setLayout(null);
 
    
    jLabelSpielfeld.setBounds(58, 22, 958, 960);
    jLabelSpielfeld.setText("");
    jLabelSpielfeld.setIcon(new ImageIcon("Spielfeld.png"));
    jLabelSpielfeld.setVerticalAlignment(SwingConstants.BOTTOM);
    jLabelSpielfeld.setVerticalTextPosition(SwingConstants.BOTTOM);
    cp.add(jLabelSpielfeld);
    bWuerfeln.setBounds(1192, 904, 193, 81);
    bWuerfeln.setText("Würfeln");
    bWuerfeln.setMargin(new Insets(2, 2, 2, 2));
    bWuerfeln.addActionListener(new ActionListener() {
      public void actionPerformed(ActionEvent evt) {
        bWuerfeln_ActionPerformed(evt);
      }
    });
    bWuerfeln.setFont(new Font("Impact", Font.BOLD, 36));
    bWuerfeln.setBorder(BorderFactory.createEtchedBorder(0, Color.BLACK, Color.BLACK));
    bWuerfeln.setCursor(new Cursor(Cursor.HAND_CURSOR));
    bWuerfeln.setBorderPainted(true);
    cp.add(bWuerfeln);
    
    jLabelAugenzahl.setBounds(1160, 664, 225, 225);
    jLabelAugenzahl.setText("");
    cp.add(jLabelAugenzahl);
    cp.setBackground(new Color(0xC0C0C0));
    setVisible(true);
    
    Feld0.setBounds(864, 840, 145, 145);
    Feld0.setText("");
    Feld0.setIcon(new ImageIcon("TestBild.png"));
    Feld0.setVisible(true);
    cp.add(Feld0);
    Feld1.setBounds(800, 840, 74, 145);
    Feld1.setText("");
    cp.add(Feld1);
    Feld2.setBounds(728, 840, 74, 145);
    Feld2.setText("");
    cp.add(Feld2);
    Feld3.setBounds(656, 840, 74, 145);
    Feld3.setText("");
    cp.add(Feld3);
    Feld4.setBounds(584, 840, 74, 145);
    Feld4.setText("");
    cp.add(Feld4);
    Feld5.setBounds(512, 840, 74, 145);
    Feld5.setText("");
    cp.add(Feld5);
    Feld6.setBounds(440, 840, 74, 145);
    Feld6.setText("");
    cp.add(Feld6);
    Feld7.setBounds(368, 840, 74, 145);
    Feld7.setText("");
    cp.add(Feld7);
    Feld8.setBounds(296, 840, 74, 145);
    Feld8.setText("");
    cp.add(Feld8);
    Feld8.setText("text");
    cp.add(Feld8);
    Feld9.setBounds(223, 840, 74, 145);
    Feld9.setText("");
    cp.add(Feld9);
    Feld10.setBounds(72, 840, 145, 145);
    Feld10.setText("");
    cp.add(Feld10);
    
  }
 

 
  public static void main(String[] args) {
    new Spieloberflaeche2();
 

mihe7

Top Contributor
wie ich wenn ich beispielsweise 2 jLabels habe, eines davon quasi während einer möglichen Überlappung davor und das andere dahinter anzeigen lassen kann.
Möglichkeit 1:

Möglichkeit 2: wenn es um ein Hintergrundbild geht, würde ich einfach selbst ein Komponente (Panel) erstellen, das das Bild im Hintergrund malt.

Deinen Code könntest Du übrigens stark vereinfachen, wenn Du statt der Variablen Feld0 bis Feld10 ein Array und eine Methode zum Erstellen der Labels verwenden würdest. cp.add(Feld8) ist doppelt.

Dann der fast schon obligatorische Hinweis: Bezeichner von Variablen, Parametern und Methoden schreibt man in Java per Konvention in lowerCamelCase. Namen von Klassen und anderen Typen in UpperCamelCase.
 

Elyt

Mitglied
Okay dazu eine kleine Rückfrage.

Zu dem Panel. Also ich arbeite mit dem Java Editor. Es soll auch nur das Spielfeld quasi in den Hintergrund. Im Vordergrund sollen dann einzelne JLabels nochmal die Felder darstellen, sodass ich darauf die Spielfiguren anzeigen kann.

Frage: Wie genau soll ich das am besten umsetzen mit dem von dir erwähnten Panel? Und wenn ich die Felder in einem Array unterbringe. wie gebe ich dann die Positionen etc. an?

Bin leider nicht ganz vertraut mit der Materie aber muss eine Facharbeit drüber schreiben :confused:
Vielen Dank für die Hilfe.


Hier einmal der Plan für das Spielfeld: Irgendwelche Ideen, wie es besser gehen würde als mit einzelnen JPanels um die Spielfiguren anzuzeigen?

12994
 

mihe7

Top Contributor
Es soll auch nur das Spielfeld quasi in den Hintergrund.

Java:
private JPanel erstelleSpielbrett() {
    ImageIcon icon = new ImageIcon("Spielfeld.png");
    return new JPanel() {
        @Override
        public void paintComponent(Graphics g) {
            icon.paintIcon(this, g, 58, 22);
        }
    };
}

Und wenn ich die Felder in einem Array unterbringe. wie gebe ich dann die Positionen etc. an?
Es spielt erstmal keine Rolle, ob Du per feld0 oder felder[0] das Label ansprichst :) Der Vorteil des Arrays besteht ja darin, dass Du einen Zugriff über einen Index hast.

Der Code für elf Felder reduziert sich dann zu:
Java:
feld[0] = erstelleEinzelfeld(864, 840, 145, 145);
for (int = 1; i < 10; i++) {
    feld[i] = erstelleEinzelfeld(800-72*i, 840, 74, 145);
}
feld[10] = erstelleEinzelfeld(72, 840, 145, 145);
(evtl. kannst Du die Positionen auch allgemeiner berechnen)

mit
Java:
private JLabel erstelleEinzelfeld(int x, int y, int w, int h) {
    JLabel feld = new JLabel();
    feld.setText(" ");
    feld.setBounds(x, y, w, h);
    return feld;
}

Vermutlich wäre aber der Weg über eine eigene Klasse (keine anonyme) der bessere, d. h. eine Klasse, die nicht nur das Hintergrundbild sondern auch die Spielfiguren einzeichnet.
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
3 JFrame immer im Hintergrund Java Basics - Anfänger-Themen 1
T Wenn JFrame Textfelder Hintergrund Grün dann... (if) Java Basics - Anfänger-Themen 3
M hintergrund in jframe festlegen Java Basics - Anfänger-Themen 4
fragenÜber(fragen); Turtle Grafik mit GUI (JFrame) Java Basics - Anfänger-Themen 3
E JFrame + Buffer-strategy Java Basics - Anfänger-Themen 8
I JFrame / Screen auf zweitem (definiertem) Monitor öffnen Java Basics - Anfänger-Themen 3
luggas89 Mit Jframe live zeichnen Java Basics - Anfänger-Themen 4
C mehrere JPanel in ein JFrame bringen Java Basics - Anfänger-Themen 9
B HSQL mit JFrame steuern Java Basics - Anfänger-Themen 4
D Wie Objekte im JFrame frei bewegen lassen? Java Basics - Anfänger-Themen 3
D Erste Schritte png in JFrame anzeigen? Java Basics - Anfänger-Themen 3
Thomathy Interface Wie schließt man ein anderes JFrame Fenster? Java Basics - Anfänger-Themen 6
D Probleme mit JFrame und der Größe Java Basics - Anfänger-Themen 8
P JFrame, Linien zeichnen, MouseListener Java Basics - Anfänger-Themen 2
S Kontrollieren ob jframe disposed ist Java Basics - Anfänger-Themen 3
OSchriever JFrame-Anwendungsfenster verschieben Java Basics - Anfänger-Themen 17
M Bild in JFrame Java Basics - Anfänger-Themen 1
S Klassenaufruf über JFrame Button Java Basics - Anfänger-Themen 3
W 2 JPanel in einem JFrame Java Basics - Anfänger-Themen 4
CptK Interface Klasse Frame (extends JFrame) aus anderer Klasse schließen Java Basics - Anfänger-Themen 7
S JFrame mit Hintergrundbild und Button Java Basics - Anfänger-Themen 4
S JFrame Java Basics - Anfänger-Themen 15
I JFrame proportional verkleinerbar machen Java Basics - Anfänger-Themen 3
B Java JFrame zeichnen Java Basics - Anfänger-Themen 4
ReinerCoder Vererbung von JFrame in einer Klasse entfernen Java Basics - Anfänger-Themen 5
T Auslagern von Methoden bei einem JFrame Java Basics - Anfänger-Themen 6
N Erste Schritte JFrame Caesar-Verschlüsselung Java Basics - Anfänger-Themen 23
B Erste Schritte Objekte von JFrame der Fenstergröße anpassen Java Basics - Anfänger-Themen 3
J JFrame Fenster öffnet sich nicht Java Basics - Anfänger-Themen 7
F Interface JFrame mit if-Abfrage automatisch schließen lassen? Java Basics - Anfänger-Themen 3
R JFrame nicht verschiebbar Java Basics - Anfänger-Themen 2
K Java JFrame mit Hintergrundbild erstellen Java Basics - Anfänger-Themen 1
Aruetiise Variablen JFrame und Variablen Java Basics - Anfänger-Themen 3
H Eclipse JFrame Java Basics - Anfänger-Themen 3
C Variablen von einem JFrame in einen anderen übertragen Java Basics - Anfänger-Themen 3
M Bild wird von JFrame nicht geladen Java Basics - Anfänger-Themen 12
I JFrame minimieren wenn anderes Programm minimiert wird Java Basics - Anfänger-Themen 1
K Methoden Methode starten wenn JFrame geöffnet wird Java Basics - Anfänger-Themen 2
D Erste Schritte JFrame Inhalte werden nicht angezeigt Java Basics - Anfänger-Themen 8
A Variablen In anderer Klasse auf Objekte von JFrame zugreifen Java Basics - Anfänger-Themen 1
B Ist MyFrame oder JFrame besser? Java Basics - Anfänger-Themen 3
Y JFrame sichtbarkeit Java Basics - Anfänger-Themen 4
KeVoZ_ Label auf JFrame willkürlich Positionieren Java Basics - Anfänger-Themen 2
Dechasa Interface JFrame mit mehreren Übereinander liegenden JPanel Java Basics - Anfänger-Themen 5
P JFrame nur einmal öffnen Java Basics - Anfänger-Themen 4
D JFrame - 10 Sekunden bis zum schließen warten. Java Basics - Anfänger-Themen 2
V Tastatur initialisieren JFrame Probleme Java Basics - Anfänger-Themen 6
J JPG in JFrame anzeigen lassen Java Basics - Anfänger-Themen 3
J JFrame ausgabe von Werten Java Basics - Anfänger-Themen 9
F GUI als Klasse oder extend JFrame? Java Basics - Anfänger-Themen 6
F JFrame resize verschiebt JPanel Java Basics - Anfänger-Themen 3
S Wieso wird mein JFrame transparent dargestellt? Java Basics - Anfänger-Themen 5
L [JFrame] Exception - woher? Java Basics - Anfänger-Themen 8
thomasbomme Grafikfehler JFrame- Cleartype Java Basics - Anfänger-Themen 1
GreyFox Arbeit mit JFrame Java Basics - Anfänger-Themen 8
T Erste Schritte 2 Codes zusammen fügen / Label in JFrame Java Basics - Anfänger-Themen 1
Z Zwei Images auf einem JFrame - Aber nur eins wird angezeigt! Java Basics - Anfänger-Themen 5
N Input/Output Wenn kein Input, dann Fehler anzeigen lassen im JFrame Java Basics - Anfänger-Themen 6
W 2 JPanels in 2Klasse in einem JFrame zusammenfügen Java Basics - Anfänger-Themen 12
dat_vin JFrame öffnet sich mehrmals Java Basics - Anfänger-Themen 6
M JFrame Bild einfügen Java Basics - Anfänger-Themen 3
M Rahmen für undekorierten JFrame Java Basics - Anfänger-Themen 6
S JPanel wird versetzt auf JFrame gelegt Java Basics - Anfänger-Themen 2
B Erste Schritte JFrame in Klasse auslagern Java Basics - Anfänger-Themen 4
H JFrame komplett schließen Java Basics - Anfänger-Themen 3
S Brauche hilfe bei Pong (JFrame) Java Basics - Anfänger-Themen 2
J JFrame Render Fehler - Warum? Java Basics - Anfänger-Themen 2
I komponenten werden in JFrame nicht richtig angezeigt Java Basics - Anfänger-Themen 1
E 2. JFrame erkennt 1. Frame Java Basics - Anfänger-Themen 6
D Best Practice JFrame im JFrame Java Basics - Anfänger-Themen 2
P Bild in JFrame Titelleiste Java Basics - Anfänger-Themen 7
S Erste Schritte Von JFrame in nächstes JFRame wechseln Java Basics - Anfänger-Themen 0
V JFrame aktualisieren Java Basics - Anfänger-Themen 6
S JFrame ist nicht schwarz Java Basics - Anfänger-Themen 5
B JPanel/JFrame in ein Applet umwandeln (Webfähig) Java Basics - Anfänger-Themen 7
S Interface JButton etc. wird in JFrame mit paint() nicht angezeigt Java Basics - Anfänger-Themen 6
S JFrame wird nicht "bemalt" Java Basics - Anfänger-Themen 2
M Unsichtbare Objekte in JFrame Java Basics - Anfänger-Themen 2
S Textdatei einlesen und JFrame füllen Java Basics - Anfänger-Themen 14
Sogomn JLabel in anderer Klasse zum JFrame hinzufügen Java Basics - Anfänger-Themen 2
B Drawline wird auf JFrame nicht angezeigt Java Basics - Anfänger-Themen 3
N Fokus setzen nachdem JFrame in Vordergrund geholt wurde Java Basics - Anfänger-Themen 7
K Methoden Objekt auf JFrame zeichnen Java Basics - Anfänger-Themen 16
S JFrame leeren Java Basics - Anfänger-Themen 6
X JFrame Fenster einzeln schließen Java Basics - Anfänger-Themen 2
J Klick auf Button -> JFrame öffnet sich erneut. & Datei lässt sich nicht löschen Java Basics - Anfänger-Themen 7
K Erste Schritte Jframe Im Jpanel Java Basics - Anfänger-Themen 4
D Kein Zugriff auf JFrame Java Basics - Anfänger-Themen 2
P JFrame Component automatische Größe verhindern Java Basics - Anfänger-Themen 2
D JFrame, Komponenten verschmiert. Java Basics - Anfänger-Themen 15
M Schriftfarbe in JFrame Java Basics - Anfänger-Themen 24
A JFrame läuft ewig? Java Basics - Anfänger-Themen 2
U JFrame durch ActionListener erweitern Java Basics - Anfänger-Themen 4
B Wie kann man auf das JFrame einer anderen Klasse zugreifen, etwas hinzufügen und entfernen?? Java Basics - Anfänger-Themen 3
N JFrame-Objekt in neuer Methode nicht verfügbar? Java Basics - Anfänger-Themen 3
A Frage zu: JFrame setLocationRelativeTo Java Basics - Anfänger-Themen 3
N Erste Schritte Prozessor Kernanzahl in JFrame Java Basics - Anfänger-Themen 3
DStrohma Transparenter JFrame Java Basics - Anfänger-Themen 3
R JFrame über einen JPanel Java Basics - Anfänger-Themen 5
I Im JFrame Inhalte verändern per Methode aus anderer Class Java Basics - Anfänger-Themen 5

Ähnliche Java Themen

Neue Themen


Oben