Guten Tag!
Ich habe ein GUI an dem ich nun schon seit 3 Tagen hänge und nichtmal zur "Eventzuteilung" gekommen bin.
Mein Problem sind die Bilder. Ich schaffe es nicht sie zu überlagern. Das Label 'labelBackground' soll der Hintergrund sein. Die anderen Labels sollen auf dem Hintergrund nebeneinander liegen, biss auf das Label 'labelMessage' das will ich weiter unten, aber immernoch über dem Hintergrund haben. So sieht meine jetziger Code aus (Die ausgeklammerten Codezeilen waren klägliche Versuche von mir):
Und so sieht die Main aus (nicht sehr besonders):
Also mein eigentliches Problem ist es, die JLabel übereinander zu bekommen. Danke für Hilfe im Vorraus!
Ich habe ein GUI an dem ich nun schon seit 3 Tagen hänge und nichtmal zur "Eventzuteilung" gekommen bin.
Mein Problem sind die Bilder. Ich schaffe es nicht sie zu überlagern. Das Label 'labelBackground' soll der Hintergrund sein. Die anderen Labels sollen auf dem Hintergrund nebeneinander liegen, biss auf das Label 'labelMessage' das will ich weiter unten, aber immernoch über dem Hintergrund haben. So sieht meine jetziger Code aus (Die ausgeklammerten Codezeilen waren klägliche Versuche von mir):
Java:
package de.m_ver.minigamecollector.scheresteinpapier;
import java.awt.GridBagConstraints;
import java.awt.GridBagLayout;
import java.awt.Insets;
import javax.swing.ImageIcon;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JLayeredPane;
public class SchereSteinPapierGUI extends JFrame {
public SchereSteinPapierGUI() {
super("Schere Stein Papier");
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
this.setLocation(450, 0);
this.initialisiereKomponenenten();
this.ordneKomponenten();
this.setSize(550, 735);
}
private JLabel labelBackground;
private JLabel labelScissors;
private JLabel labelStone;
private JLabel labelPaper;
private JLabel labelMessage;
private ImageIcon iconBackground;
private ImageIcon iconScissors;
private ImageIcon iconStone;
private ImageIcon iconPaper;
private JLayeredPane layeredPane;
private void initialisiereKomponenenten() {
this.iconBackground = new ImageIcon("images/grundSSP.png");
this.iconScissors = new ImageIcon("images/schere.png");
this.iconStone = new ImageIcon("images/stein.png");
this.iconPaper = new ImageIcon("images/papier.png");
this.labelBackground = new JLabel(iconBackground);
this.labelBackground.setOpaque(true);
this.labelScissors = new JLabel(iconScissors);
this.labelScissors.setOpaque(true);
this.labelStone = new JLabel(iconStone);
this.labelStone.setOpaque(true);
this.labelPaper = new JLabel(iconPaper);
this.labelPaper.setOpaque(true);
this.labelMessage = new JLabel("MESSAGE");
this.labelMessage.setOpaque(true);
//ordneKomponenten();
}
private void ordneKomponenten() {
this.getContentPane().setLayout(new GridBagLayout());
GridBagConstraints c = new GridBagConstraints();
c.fill = GridBagConstraints.HORIZONTAL;
c.insets = new Insets(4, 4, 4, 4);
c.gridx = 0;
c.gridy = 1;
c.gridwidth = 30;
c.gridheight = 40;
this.getContentPane().add(labelBackground, c);
c.gridx = 4;
c.gridy = 4;
c.gridwidth = 6;
c.gridheight = 6;
this.getContentPane().add(labelScissors, c);
c.gridx = 8;
this.getContentPane().add(labelStone, c);
c.gridx = 16;
this.getContentPane().add(labelPaper, c);
c.gridx = 2;
c.gridy = 30;
c.gridwidth = 1;
c.gridheight = 1;
this.getContentPane().add(labelMessage, c);
/*this.labelBackground.setBounds(0, 0, 550, 735);
this.labelScissors.setBounds(175, 20, 15, 15);
this.labelStone.setBounds(350, 20, 15, 15);
this.labelPaper.setBounds(520, 20, 15, 15);
this.labelMessage.setBounds(225, 100, 1, 1);
this.layeredPane = new JLayeredPane();
this.layeredPane.add(this.labelBackground, 0);
this.layeredPane.add(this.labelScissors, 1);
this.layeredPane.add(this.labelStone, 2);
this.layeredPane.add(this.labelPaper, 3);
this.layeredPane.add(this.labelMessage, 4);
this.getContentPane().add(this.layeredPane); */
}
public void start() {
this.setVisible(true);
}
}
Und so sieht die Main aus (nicht sehr besonders):
Java:
package de.m_ver.minigamecollector.main;
import de.m_ver.minigamecollector.scheresteinpapier.SchereSteinPapierGUI;
public class Main {
public static void main(String[] args) {
SchereSteinPapierGUI schereSteinPapierGUI = new SchereSteinPapierGUI();
schereSteinPapierGUI.start();
}
}
Also mein eigentliches Problem ist es, die JLabel übereinander zu bekommen. Danke für Hilfe im Vorraus!