JradioButton

17 respostas
marcos2205

Oi pessoal, tudo bem ?

Estou tentando criar um JradioButton e está dando erro…
Como criu um com duas opções e se uma estiver marcada a outra não pode ser marcada…

17 Respostas

ViniGodoy

Você precisa colocar os seus botões num ButtonGroup. Ele é quem diz quais botões estão relacionados:

ButtonGroup bg = new ButtonGroup(); bg.add(radio1); bg.add(radio2);

Embora não seja comum, ele funciona com checkboxes e botões normais também (desses que ficam pressionados).

Marlon_Meneses

segue um codido de exemplo

import java.awt.FlowLayout;

import javax.swing.ButtonGroup;
import javax.swing.JFrame;
import javax.swing.JRadioButton;


public class JRadioButtonTest extends JFrame{
	public JRadioButtonTest(){
		this.setLayout(new FlowLayout(FlowLayout.LEFT));
		JRadioButton rj1 = new JRadioButton("JRadioButton1");
		JRadioButton rj2 = new JRadioButton("JRadioButton1");
		JRadioButton rj3 = new JRadioButton("JRadioButton3");
		JRadioButton rj4 = new JRadioButton("JRadioButton4");
		
		ButtonGroup bg = new ButtonGroup();
		bg.add(rj1);
		bg.add(rj2);
		bg.add(rj3);
		bg.add(rj4);
		
		this.add(rj1);
		this.add(rj2);
		this.add(rj3);
		this.add(rj4);
		
		this.setSize(300,100);
		this.setVisible(true);
	}
	
	public static void main(String args[]){
		JRadioButtonTest jr = new JRadioButtonTest();
		jr.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
	}
}
marcos2205
JRadioButton radio1 = new JRadioButton("JRadioButton1");

        JRadioButton radio2 = new JRadioButton("JRadioButton2");


        ButtonGroup bg = new ButtonGroup();
        bg.add(radio1);
        bg.add(radio2);

isso ??

CrOnNoS

era só testar hehe …
sim é isso

marcos2205

é que não da erro…mas não aparece nada …

sabe o que pode ser ??

JFrame novo = new JFrame("Novo Cadastro");
                    novo.setVisible(true);
                    novo.setSize(350,250);
                    novo.setLocationRelativeTo(null);

                    JRadioButton radio1 = new JRadioButton("JRadioButton1");
                    JRadioButton radio2 = new JRadioButton("JRadioButton2");

                    ButtonGroup tipo = new ButtonGroup();
                    tipo.add(radio1);
                    tipo.add(radio2);
erico_kl

você testou o código do Marlon?

é que não da erro....mas não aparece nada ...

sabe o que pode ser ??

JFrame novo = new JFrame("Novo Cadastro");   
novo.setVisible(true);   
novo.setSize(350,250);   
novo.setLocationRelativeTo(null);   
  
JRadioButton radio1 = new JRadioButton("JRadioButton1");   
JRadioButton radio2 = new JRadioButton("JRadioButton2");   
  
ButtonGroup tipo = new ButtonGroup();   
tipo.add(radio1);   
tipo.add(radio2);
Você também precisa adicionar os radioButtons no JFrame..
erico_kl

novo.add(radio1); novo.add(radio2);

lina

Oi,

Não esqueça de adicionar um Layout.

novo.setLayout(null);

Tchauzin!

marcos2205

deu certo em partes

quando eu coloco isso, abaixo:

novo.setLayout(null);

não abarece JRadioButton

sem ele aparece um em cima do outro, tem dois!
podem me ajudar…

brigadooo ae pela atenção!

M

Pra já você pode fazer:

novo.setLayout(new FlowLayout());

Isso resolve (um botão de rádio ficará do lado do outro). Mas ao se trabalhar com swing é preciso ter conhecimento sobre gerenciadores de leiaute. Um boa referência: http://java.sun.com/docs/books/tutorial/uiswing/layout/index.html

lina

marcos2205:
deu certo em partes

quando eu coloco isso, abaixo:

novo.setLayout(null);

não abarece JRadioButton

sem ele aparece um em cima do outro, tem dois!
podem me ajudar…

brigadooo ae pela atenção!

Oi,

Como estou vendo, você tem um conhecimento “basicao” sobre o Java. A maneira correta é estudar os tipos de Layout e ver qual se encaixa para a sua situação.

Mexer com Layout não é uma coisa simples, sendo assim, requer um certo conhecimento. Por isso recomendei a você utilizar o setLayout(null)

Quando você utiliza este layout, significa que deverá colocar tamanho/posições para todos os seus componentes. Ou seja, você deverá posicionar seus JRadioButton com o comando setBounds(int,int,int,int)

Entendeu? Qualquer dúvida, só perguntar…

Tchauzin!

Marlon_Meneses

eu nao recomendaria usar o Layout null pois a renderizacao desse jeito varia muito dependendo da resolucao entao as vezes fica uma bagunça!
eu geralmente uso o BorderLayout ou o FlowLayout mas é claro que cada caso há um caso
rsrsrs

bestlinux

Eu uso BorderLayout, e também recomendo.

lina

Oi,

Correto. Utilizar layout null não garante uma portabilidade entre Sistemas Operacionais.

Tchauzin!

lina

Oi,

O correto seria estudar os tipos de Layout. As vezes a necessidade dele não corresponde a utilização de um BorderLayout.

Tchauzin!

erico_kl

eu costumo utilizar layout null pois monto as telas com plugin pra interface gráfica (que já seta a posição de cada componente)…
claro… se fosse fazer todas as telas somente no braço com certeza utilizaria algum layout

marcos2205

pessoal, eu usei esse e deu certo…

novo.setLayout(new FlowLayout());

Obrigadooo…e LINA deixa eu estudar mais um pouco…valeu!

Criado 2 de dezembro de 2009
Ultima resposta 3 de dez. de 2009
Respostas 17
Participantes 8