GUI Wie kann ich Chackbox-en auf der linken Seite vertikal aufteilen

Hallo liebe Leute,

hier ist mein Muster aber der Klappt nicht. Wie kann ich code schreiben dass so einen Fenster bekomme?

Danke für eure Hilfe

Statt 2 GidLayouts nur eins und vor den nach rechts gerückten Checkboxen ein leeres Label einfügen.

bye
TT

meinst du eine GridLayout mit (5,2)?

ja

Klappt nicht :frowning:

		p_mitte.add(l2);

		l3 = new JLabel("Land");
		p_mitte.add(l3);

		l4 = new JLabel("Brüssel:");
		p_mitte.add(l4);

		c1 = new JCheckBox("Belgien", false);
		p_mitte.add(c1);

		l5 = new JLabel(" ");
		p_mitte.add(l5);

		c2 = new JCheckBox("Rumenien", false);
		p_mitte.add(c2);

		l6 = new JLabel(" ");
		p_mitte.add(l6);

		c3 = new JCheckBox("Frankreich", false);
		p_mitte.add(c3);

		l7 = new JLabel(" ");
		p_mitte.add(l7);
		c4 = new JCheckBox("Deutschland", false);
		p_mitte.add(c4);

Zeig am besten mal ein KSKB. Dann lässt sich dein Problem einfacher finden.

was ist KSKB?

da ist mein Code


	JCheckBox c1, c2, c3, c4;
	JLabel l1, l2, l3, l4, l5, l6, l7, l8;
	JButton b1;
	int anz = 0;

	public CUebungGUi12() {
		JPanel p_oben = new JPanel();
		JPanel p_mitte = new JPanel();
		JPanel p_unten = new JPanel();
		JPanel p_unten1 = new JPanel();

		GridLayout layfenster = new GridLayout(4, 1);
		GridLayout laymitte = new GridLayout(5, 2);

		p_mitte.setLayout(laymitte);

		l1 = new JLabel("HAUPTSTÄDTE-QUIZ");
		p_oben.add(l1);

		l2 = new JLabel("Hauptstadt:");
		p_mitte.add(l2);

		l3 = new JLabel("Land");
		p_mitte.add(l3);

		l4 = new JLabel("Brüssel:");
		p_mitte.add(l4);

		c1 = new JCheckBox("Belgien", false);
		p_mitte.add(c1);

		l5 = new JLabel(" ");
		p_mitte.add(l5);

		c2 = new JCheckBox("Rumenien", false);
		p_mitte.add(c2);

		l6 = new JLabel(" ");
		p_mitte.add(l6);

		c3 = new JCheckBox("Frankreich", false);
		p_mitte.add(c3);

		l7 = new JLabel(" ");
		p_mitte.add(l7);
		c4 = new JCheckBox("Deutschland", false);
		p_mitte.add(c4);

		l6 = new JLabel(" ");
		p_mitte.add(l6);

		b1 = new JButton("OK");
		p_unten.add(b1);

		l8 = new JLabel("Anzahl der richtigen Antworten:");
		p_unten1.add(l5);

		setLayout(layfenster);
		add(p_oben);
		add(p_mitte);
		add(p_unten);
		add(p_unten1);

		b1.addActionListener(new CLauscher());
	}

	class CLauscher implements ActionListener {
		public void actionPerformed(ActionEvent e) {
			String s;
			s = e.getActionCommand();
			boolean g = c1.isSelected();
			boolean x = c2.isSelected();
			boolean a = c3.isSelected();
			boolean b = c4.isSelected();

			if (s.equals("OK")) {
				if (g) {
					l5.setText("Sie haben richtig gewählt mit : " + anz + " Versuche");
				}
				if (x) {
					anz = anz + 1;
					l5.setText("Anzahl der Versuche: " + anz);
				}
				if (a) {
					anz = anz + 1;
					l5.setText("Anzahl der Versuche: " + anz);
				}
				if (b) {
					anz = anz + 1;
					l5.setText("Anzahl der Versuche: " + anz);
				}

				//l5.setText("Anzahl der Versuche: " + anz);
			}

		}

	}

	public static void main(String[] args) {

		CUebungGUi12 a = new CUebungGUi12();
		a.setSize(300, 500);
		a.setVisible(true);
		a.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

	}
}

[quote=anni80]Klappt nicht[/quote]2 Fehler im KSKB:
[ol]
[li]Zeile 15: eine der Dimensionen des GridLayout sollte “0” sein. Wenn man new GridLayout(0,2) schreibt passt dass schon mal.
[/li][li]Zeile 58: Das Lable l5 wird dort an einer anderen Stelle ins Layout eingefügt.
[/li][/ol]

Wenn man beides berichtigt gehts.

bye
TT

danke es funktioniert tadellos.
Was hätte ich wirklich ohne eure Hilfe überhaupt gemacht

Nur der vollständigkeit halber, falls das hier jemand list und sich fragt wieso zum geier 0 in den gridlayout konstruktor. (Auch wenn das aus der doc zu entnehmen ist ^^)

0 bedeutet hier einfach unedfiniert - also 0 - unendlich.