JRadioButtons

Status
Nicht offen für weitere Antworten.

mu

Aktives Mitglied
Hallo :)

Bin gerade dabei eine kleine QuizApplikation zu schreiben und würd gern wissen ob man die RadioButtons auch nur einzeln auswählen kann?

damit immer nur 1 antwort ausgewählt werden kann beim quiz.

hab in der API grad bischen rumgestöbert doch nix gefunden


Bei ListSelectionModel.MULTIPLE_INTERVAL_SELECTION z.b. gibts ja auch mehrere Varianten, kann mir ned vorstellen das es bei RadioButtons keine andere möglichkeit gibt als nur mehrere auswählen zu können.


/mu
 

Saxony

Top Contributor
Hiho,

yep das geht! Dazu musst du diese in einer ButtonGroup zusammen fassen.

[edit]
Aso da fällt mir noch was ein. Ich habe auch mal eine sogenannte RadioGroup geschrieben. Diese kannte ich noch aus meinen Delphizeiten (TRadioGroup) und habe diese in Java dann doch etwas vermisst. ;)
Wenn Interesse betseht, kann ich die ja mal irgendwo hin packen.
[/edit]

bye Saxony
 

mu

Aktives Mitglied
dacht ich mir schon..

das Problem dabei.

Ich hab meine Applikation in 3 Panels eingeteilt.


1. Panel (borderlayout.north) - Die Quiz Frage

2. Panel (borderlayout.center) - Die Radiobuttons

3. Panel (borderlayout.south) - OK Button


Wenn ich eine Buttongroup mache dann muss ich

Code:
buttongroup.add(radiobutton1);

machen und der Radiobutton ist dann in keinem Panel mehr.
Gibts eine Lösung wie der radiobutton in der buttongroup UND in einem Panel sein kann?


/mu
 

Saxony

Top Contributor
Ähm,

du kannst JRadioButton gleichzeitig einer Komponente UND einer ButtonGroup zuordnen. ;)

bye Saxony
 

mu

Aktives Mitglied
ae, klar geht das...

bin grad bischen verpeilt

hab versucht

Code:
radiobuttonPanel.buttonGoup.add(rb4);

zu machen.. ya habs nun :) danke

ganzer source:

Code:
public class Quiz extends JFrame
{
	private JPanel fragenPanel, rbPanel, buttonPanel;
	private JButton okButton;
	private JRadioButton rb1, rb2, rb3, rb4;
	private JLabel fragenLabel;
	
	private JTextField trueOrFalse;
	
	public Quiz()
	{
		super("Quiz");
		setLayout(new BorderLayout());
		setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		setSize(200,140);
		
		fragenPanel = new JPanel();
		add(fragenPanel, BorderLayout.NORTH);
		
		rbPanel = new JPanel();
		add(rbPanel, BorderLayout.CENTER);
		
		buttonPanel = new JPanel();
		add(buttonPanel, BorderLayout.SOUTH);
		
		//Fragen
		fragenLabel = new JLabel("1 + 1 = ?");
		fragenPanel.add(fragenLabel, BorderLayout.CENTER);
		
		//Checkboxen
		rb1 = new JRadioButton("2");
		rb2 = new JRadioButton("11");
		rb3 = new JRadioButton("33");
		rb4 = new JRadioButton("121");
				
		ButtonGroup bg = new ButtonGroup();
		bg.add(rb1);
		bg.add(rb2);
		bg.add(rb3);
		bg.add(rb4);
		
		rbPanel.add(rb1);
		rbPanel.add(rb2);
		rbPanel.add(rb3);
		rbPanel.add(rb4);		
		
		//Button
		okButton = new JButton("Ok");
		buttonPanel.add(okButton);
		trueOrFalse = new JTextField(6);
		buttonPanel.add(trueOrFalse);
		
		
		okButton.addActionListener(new ActionListener()
		{
			@Override
			public void actionPerformed(ActionEvent e) 
			{
				if(rb1.isSelected())
				{
					trueOrFalse.setText("Richtig");
				}
				else
				{
					trueOrFalse.setText("Falsch");
				}
			}
			
		});
		
	}
}

und Main Klasse
Code:
public class QuizMain 
{
	public static void main(String[] args)
	{
		Quiz frame = new Quiz();
		frame.setVisible(true);
	}
}
 
Status
Nicht offen für weitere Antworten.

Ähnliche Java Themen


Oben