Hallo,
ich schreibe gerade an einem CookieClicker. Ich hänge schon wieder am GUI. Die Komponenten werden irgendwie nicht so angeordnet wie ich es gerne hätte. Ich benutze das GridBagLayout um in einem JPanel die Komponenten anzuordnen. (Sollte ich eventuell ein anderes Layout benutzen?) Hier ist der Code:
So sieht das Frame zurzeit aus:
Die roten Striche mit den "Punkten"(diesem... kein Ahnung was das sein soll ) sollen zeigen wo das Label eigentlich liegen soll. Ah der "Punkt" beim Cookie soll übrigens dessen Mittelpunkt darstellen.
Danke für Hinweise und Hilfe!
ich schreibe gerade an einem CookieClicker. Ich hänge schon wieder am GUI. Die Komponenten werden irgendwie nicht so angeordnet wie ich es gerne hätte. Ich benutze das GridBagLayout um in einem JPanel die Komponenten anzuordnen. (Sollte ich eventuell ein anderes Layout benutzen?) Hier ist der Code:
Java:
public class CookieClickerGUI extends JFrame {
public CookieClickerGUI() {
super("Cookie Clicker");
this.setLocation(300, 150);
this.setDefaultCloseOperation(EXIT_ON_CLOSE);
this.initialisiereKomponenten();
this.ordneKomponenentenInJPanelOverlay();
this.setSize(820, 500);
}
private JPanelOverlay panelOverlay;
private ImageIcon iconCookie;
private JLabel labelCookie;
private JLabel labelAnzahlCookies;
private JLabel labelCookiesProKlick;
private JLabel labelCookieShop;
private void initialisiereKomponenten() {
this.iconCookie = new ImageIcon("images/CookieClickerCookie.png");
this.panelOverlay = new JPanelOverlay();
this.panelOverlay.setOpaque(false);
this.labelCookie = new JLabel(this.iconCookie);
this.labelCookie.setOpaque(false);
this.labelAnzahlCookies = new JLabel("0");
this.labelAnzahlCookies.setOpaque(false);
this.labelCookiesProKlick = new JLabel("1");
this.labelCookiesProKlick.setOpaque(false);
this.labelCookieShop = new JLabel("Cookie Shop");
this.labelCookieShop.setOpaque(false);
}
private void ordneKomponenentenInJPanelOverlay() {
this.panelOverlay.setLayout((new GridBagLayout()));
GridBagConstraints c = new GridBagConstraints();
c.fill = GridBagConstraints.HORIZONTAL;
c.insets = new Insets(5, 5, 5, 5);
c.weightx = 1;
c.weighty = 1;
c.gridx = 0;
c.gridy = 1;
this.panelOverlay.add(this.labelAnzahlCookies, c); // Dieses Label wird zu weit links angezeigt.
c.gridx = 1;
this.panelOverlay.add(this.labelCookiesProKlick, c); // Dieses zu weit rechts ....
c.gridx = 0;
c.gridy = 2;
this.panelOverlay.add(this.labelCookie, c); // dieses JLabel wird auch irgendwie nicht da angezeigt wo es sein soll.
c.gridx = 2;
c.gridy = 1;
this.panelOverlay.add(this.labelCookieShop); // Und dieses oben in der Mitte obwohl es relativ weit rechts angezeigt werden soll.
this.getContentPane().add(this.panelOverlay);
}
public void start() {
this.setVisible(true);
}
}
So sieht das Frame zurzeit aus:
Die roten Striche mit den "Punkten"(diesem... kein Ahnung was das sein soll ) sollen zeigen wo das Label eigentlich liegen soll. Ah der "Punkt" beim Cookie soll übrigens dessen Mittelpunkt darstellen.
Danke für Hinweise und Hilfe!