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…
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…
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).
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);
}
}
JRadioButton radio1 = new JRadioButton("JRadioButton1");
JRadioButton radio2 = new JRadioButton("JRadioButton2");
ButtonGroup bg = new ButtonGroup();
bg.add(radio1);
bg.add(radio2);
isso ??
era só testar hehe …
sim é isso
é 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ê testou o código do Marlon?
é que não da erro....mas não aparece nada ...Você também precisa adicionar os radioButtons no JFrame..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);
novo.add(radio1);
novo.add(radio2);
Oi,
Não esqueça de adicionar um Layout.
novo.setLayout(null);
Tchauzin!
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!
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
deu certo em partesquando 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!
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
Eu uso BorderLayout, e também recomendo.
Oi,
Correto. Utilizar layout null não garante uma portabilidade entre Sistemas Operacionais.
Tchauzin!
Oi,
O correto seria estudar os tipos de Layout. As vezes a necessidade dele não corresponde a utilização de um BorderLayout.
Tchauzin!
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
pessoal, eu usei esse e deu certo…
novo.setLayout(new FlowLayout());
Obrigadooo…e LINA deixa eu estudar mais um pouco…valeu!