Radiobuttons auf einem anzeigen

  • Themenstarter Themenstarter Tito
  • Beginndatum Beginndatum
Status
Nicht offen für weitere Antworten.
T

Tito

Gast
Ich möchte 2 RadioButtons auf einem Panel anzeigen, dies soll als Ereignis durch eine ActionPerformed() Methode
ausgelöst werden und mehrmals wiederholt werden können.
Mein Problem ist hierbei, dass die RadioButtons beim wiederholten ausführen der ActionPerformed() Methode sich
nebeneinander anordnen, so dass immer mehr RadioButtons im Fenster zu sehen sind.

Mein Ziel ist es zu erreichen das immer nur 2 RadioButtons angezeigt werden.

Code:
public class test {
	JFrame fenster = new JFrame("test");	
	private JLabel label1 = new JLabel();
	private JPanel panel2 = new JPanel();
	private JPanel panel3 = new JPanel();
	public void zeigeFenster(){
		 
		 fenster.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		 fenster.setVisible(true);
		 
		 fenster.setLayout(new GridLayout(2,1));
		 panel3.setLayout(new GridLayout(5,4));
		 panel2.setLayout(new GridLayout(2,1));
		 label1.setText("text");
		 label1.add(new JRadioButton("test1"));
		 
		for (int i = 0; i < 20; i++) {
			final int j = i;
			panel3.add(new JButton(new AbstractAction("" + i) {
				public void actionPerformed(ActionEvent e) {
					panel2.add(new JRadioButton("testA" + j));
					panel2.add(new JRadioButton("testB"+ j));
					label1.setText("text" + j);                            //der Text im JLabel lässt sich überschreiben
 //warum funktioniert das nicht mit den RadioButtons auf dem JPanel???
					label1.add(new JRadioButton("testC"+ j));//warum wird auf dem JLabel der JRadioButton
 //nicht angezeigt??? Ich hatte gehofft die JRadioButtons würden sich auf dem JLabel so verhalten wie der Text...
				}
			}));
		}		 
		panel3.add(label1);
		 fenster.add(panel2);
		 fenster.add(panel3);
		 fenster.pack();
	}

}
 
Du sollst auf einem JLabel nicht die RadioButtons hinzufügen. Die sollen aufs Panel.

Es fehtl die actionPerformedMethode
 
Hi,

du wirst bestimmt immer < 20 RadioButton erzeugen.

Pack die bestimmt Anzahl an Button in eine Box.

Versuchs mal damit:


Code:
JRadioButton[] radio;

String[] s ={"A", "b", "d"};

int i = s.length;
radio = new JRadioButton[s.length];
for(i = 0; i < s.length; i++)
{
    radio[i] = new JRadioButton(s.length);
    radio[i].addActionListenr(this);
}

mal auf die schnelle. Und pack die RadfioButtons in eine Box.


Gruß
chris
 
Verjigorm hat gesagt.:
Hobbit_Im_Blutrausch hat gesagt.:
Du sollst auf einem JLabel nicht die RadioButtons hinzufügen. Die sollen aufs Panel.

Es fehtl die actionPerformedMethode

ich glaube du solltest nochmal genauer lesen 😉

OK ... trotzem sollten die RadioButtons nicht dem JLabel hinzugefügt werden.

Du solltest über panel.remove bzw. panel.removeAll die überflüssigen JRadioButtons löschen und dann neu einfügen - ein ordentlicher LayoutManager hilft dabei.

Aber irgendwie find ich das immer noch alles sehr konfus 😛
 
Hobbit_Im_Blutrausch hat gesagt.:
Du solltest über panel.remove bzw. panel.removeAll die überflüssigen JRadioButtons löschen und dann neu einfügen - ein ordentlicher LayoutManager hilft dabei.

Danke, das war's...
 
Status
Nicht offen für weitere Antworten.

Neue Themen


Zurück
Oben