Item Selecionado do ButtonGroup

Dando uma pesquisada rapido, o ButtonGroup aparenta mais ser uma maneira para organizar os JRadioButton para que os mesmos dentro desse grupo somente tenham uma seleção.

Para saber qual JRadioButton está selecionado, estou usando fazendo uma comparação para cada JradioButton usando isSelected().

Se fosse uma aplicação com poucos JRadioButton seria uma boa, mais e para uma aplicação com varios? Com Varios grupos, contendo cada um com no minimo 10 ou 15, seria if demais até.
Tem alguma maneira de pegar somente o item selecionado de cada grupo?

Um exemplo que gostaria seria algo basico encima desse codigo.

jContentPane.add(getJRadioButton(), null);
jContentPane.add(getJRadioButton1(), null);
jContentPane.add(getJRadioButton2(), null);
//Adcionando os JRadioButton em um grupo =D
ButtonGroup bg = new ButtonGroup();
bg.add(jRadioButton);
bg.add(jRadioButton1);
bg.add(jRadioButton2);

........

//Botao com action para saber qual item foi selecionado

private JButton getJButton() {
		if (jButton == null) {
			jButton = new JButton();
			jButton.setBounds(new Rectangle(136, 134, 56, 25));
			jButton.addActionListener(new java.awt.event.ActionListener() {
				public void actionPerformed(java.awt.event.ActionEvent e) {
					//Metodo xD
					
				}
			});
		}
		return jButton;
	}

Se alguma tiver alguma Luz de como fazer. hehehe xD

Valeu =)

O ButtonGroup possui um método chamado getSelection(), cujo valor você pode comparar àquele retornado pelo método getModel() dos seus JButton’s. Para ter uma maneira prática de percorrer seus JButton’s à procura do item correto, sugiro duas maneiras:

  • Percorra todos os componentes do Container em que os JButton’s estão contidos (provavelmente é um JPanel) usando os métodos getComponentCount() e getComponent(), e verifique se cada componente é um JButton. Se for, é só usar getModel() para fazer a comparação;

  • Adicione seus JButton’s dentro de um array ou lista, e percorra o array ou lista na hora da verificação.

Opa, valeu pela dica.
Ideia muito boa pegando os componentes e jogando em um array. =)

Obrigado

Olá. Achei uma maneira mais simples de resolver este problema: Utilizando o método isSelected()

Levando em consideração que o nome do nosso jRadioButton é rb_Teste faça da seguinte maneira:

if (rb_Teste.isSelected()) // Faça algo aqui!

Explicação: O método isSelected() retorna um valor Boolean. O nome diz tudo: Caso aquele objeto esteja, de fato, selecionado, o método retorna true. Caso contrário, retorna false.

Serve para aplicações com poucos Radio Buttons… acho que dá para simplificar para quem está “engatiando” no Netbeans.

Espero ter ajudado! Até mais!

1 curtida

Para pegar o item selecionado faça o seguinte:

Considerando que você já selecionou os jRadio e associou ao buttonGroup = Masculino e Feminino

1 - Selecione cada jRadio e com botão direito vá em propriedades, delete o conteúdo da propriedade ActionCommand, pressione fechar para sair da tela de propriedades.
2 - Selecione o mesmo jRadio e com botão direito vá em propriedades na mesma propriedade e coloque o texto Masculino respectivamente
3 - Agora o comando buttonGroup1.getSelection().getActionCommand() retornará o texto corretamente do item selecionado.

Douglas Tybel


Analista de Sistemas
Engenharia de Sistemas
MCP + MCDST

1 curtida