Olá pessoal!
Estou com uma duvidazinha… Não encontrei pelo “BUSCA”…
Como mudar a orientação do texto de um JRadioButton? direita, esquerda, cima, baixo…
Outra: Quando você deixa um JRadioButton no estado enable(false) ele muda de cor, fica meio acinzentado, como deixa-lo enable(false) sem que isso ocorra? Sei como fazer isso com JTextField mas não com JRadioButton…
Valeu pessoal! :thumbup: :thumbup: :thumbup:
e aí gqferreira?? Tudo bem?
Você pode usar o método “setHorizontalTextPosition(SwingConstants.algumaDirecao)” para mudar a posiçao do texto em relaçao ao botao
ex:
JRadioButton button = new JRadioButton("Teste");
button.setHorizontalTextPosition(SwingConstants.LEFT);//Deixa o texto a esquerda do botao
button.setHorizontalTextPosition(SwingConstants.RIGHT);//Deixa o texto a direita do botao
Quanto ao enable(false) eu não sei se entendi oque você quer, mas o objetivo do botão ficar dessa maneira é para deixar claro para o usuário que não é possível clicar ali
Tudo bem Douglas…
E você??
Bom amigo… dá uma olhada nessa imagem.
Quero buscar alguns dados do usuário e mostrar em um mini formulário. Para mostrar se o usuário é casado ou não resolvi usar JRadioButton porque achei feio colocar um JTextField.
Para os JTextField’s eu consegui “mascara-los” para faze-los parecer “normal”, mas eles estão em editable(false). Com o radioButton eu não consigo fazer o mesmo. Nesse print eles não estão boloqueados, mas quando os bloqueio, ficam feios…acinzentados como todo componente bloqueado…como deixa-lo “normal”???
Ops… :oops: :oops: :oops: :oops:
Esqueci da imagem :lol: :lol: :lol:

Aqui tudo blz tb…
Tem um jeito de fazer. Você pode fazer o seguinte. Você pode colocar na escuta do evento o método setSelected(false). Aí dessa maneira toda vez que o usuário clicar no botão, ele se auto desseleciona(nem sei se essa palavra existe, hehehe :? ), dando a impressao que o botao nao pode ser selecionado
Ficaria algo assim:
[code]JRadioButton button = new JRadioButton(“Teste”);
button.addItemListener(this); //No caso de sua própria classe ser a ouvinte do evento
//etc
//Aqui você sobrescreve o método itemStateChanged
public void itemStateChanged(ItemEvent event)
{
button.setSelected(false);
}
[/code]
Eu fiz um teste aqui e deu certo. Acho que ficou do jeito que voce quer, espero ter ajudado 
Abraços!
Não entendi amigo…
Quando disparar o evento os JRadioButton’s deve ficarem des-selecionados??(des-selecionados= :hunf: :? :hunf: Deve estar errado também)
para (tentar) ajudar:
[code]
public static void busca(String username)
{
String nome,idade,casado,data;
try
{
String sql = “select * from login where user = '”+username+"’";
if (BD.getConnectionAccess())
{
BD.setResultSet(sql);
BD.resultSet.next();
nome = BD.resultSet.getString(3);
idade = BD.resultSet.getString(4);
casado = BD.resultSet.getString(5);
data = BD.resultSet.getString(14);
if (casado.equals("Sim"))
{
Remover.rbSim.setSelected(true);
Remover.rbNao.setSelected(false);
}
else
{
Remover.rbNao.setSelected(true);
Remover.rbSim.setSelected(false);
}
Remover.tfDataEntrada.setText(data);
Remover.tfIdade.setText(idade);
Remover.tfNome.setText(nome);
Remover.tfUSernameInfo.setText(username);
BD.resultSet.close();
}
}
catch(SQLException ex)
{
JOptionPane.showMessageDialog(null,"Esse username não é cadastrado no sistema", "Username inválido", JOptionPane.WARNING_MESSAGE);
ex.printStackTrace();
}[/code]
Quando clico no botão localizar, o evento invoca esse método de outra classe que preenche o mini formulário…
Hehe, não sei se entendi direito… vamos lá…
Você gostaria que o usuário não pudesse clicar no radioButton “sim” e “não” da figura?? Só que para deixar o botão desabilitado ele fica aquele cinza. Então você gostaria que ele ficasse desabilitado só que de forma normal, certo? Do jeito que te passei, o botão ainda fica “selecionável”, mas no tratamento do evento ele des-seleciona o botão, dando a impressão que ele não pode ser selecionado. Vou deixar o código do teste que fiz aqui para você dar uma olhada. O botão deve ficar desabilitado até que o usuário realize determinadas ações para depois habilitá-lo?? Se for isso, acredito que você deva fazer uma verificação no itemStateChanged. Se o usuário ainda não completou todas as ações, então dispara o setSelected(false). Se ele já terminou, aí você trata o evento normalmente:
[code]public void itemStateChanged(ItemEvent event){
if(aindaTemCoisasAFazer)
button.setSelected(false)
else
//faz as coisas que o botao tem que fazer
}
[/code]
Abaixo o código de como fica o botão:
[code]import javax.swing.;
import java.awt.event.;
public class TesteBotao implements ItemListener {
private JFrame frame;
private JRadioButton button;
public static void main(String [] args){
TesteBotao tb = new Identificadores();
tb.go();
}
public void go(){
frame = new JFrame();
button = new JRadioButton();
button.setText("test");
button.setHorizontalTextPosition(SwingConstants.LEFT);
button.addItemListener(this);
frame.getContentPane().add(button);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setSize(100,100);
frame.setVisible(true);
}
public void itemStateChanged(ItemEvent event){
button.setSelected(false);
}
}
[/code]
Se não for isso, passa a função dos seus botões de rádio para eu ter uma idéia mais clara do que eles fazem e o porque e até quando ele devem ficar desabilitados. Assim acho que posso ter uma ideia melhor.
Abraços!
Os botões de rádio nunca ficarão “selecionáveis” e nunca terá nem um evento assoiciado a ele. Eles apenas servem para mostrar um resultado >> casado ou solteiro.
É aquele método lá que os preenche de acordo com o que consta no banco de dados.
entendi…bom, para cada botao voce pode fazer mais ou menos oque fez nos seus metodos:
//para o botao sim:
if(casados.equals("sim")
button.setSelected(true);
else
button.setSelectec(false);
//Para o botao nao a mesma coisa so que ao contrario
if(casados.equals("sim"))
button.setSelected(false);
else
button.setSelected(true);
sendo que estas comparaçoes estejam dentro do tratamento do evento, dessa forma seus valores nunca irão mudar…
sim…mas isso eu já fiz… o problema é que dessa forma você está definindo quem estará false ou true mas o usuário poderá alterar com o mouse, então bloqueio ele fica acinzenta, esse é o problema = acinzentado. Como fazer ele ficar com a aparencia de botão selecionável, liberado… estando bloqueado…
É que eu acho que não fui claro. Compila esse código abaixo e veja como ficaram os botões. Da uma olhada nos tratamentos dos eventos, acho que com o código é melhor do que eu falando.
[code]
//Compila e roda esse programa. Os botões tem que ser assim?
import javax.swing.;
import java.awt.event.;
import java.awt.*;
public class TestaBotoes {
private JFrame frame;
private JRadioButton noButton;
private JRadioButton yesButton;
private String casados;
public static void main(String [] args){
TestaBotoes tb = new TestaBotoes();
tb.go();
}
public void go(){
casados = "sim"; //Imagine que tenha buscado um "sim" no banco
frame = new JFrame();
noButton = new JRadioButton();
noButton.setText("Nao");
noButton.setHorizontalTextPosition(SwingConstants.RIGHT);
noButton.addItemListener(new NoButtonHandler());
frame.getContentPane().add(noButton, BorderLayout.WEST);
yesButton = new JRadioButton("Sim");
yesButton.setSelected(true); //Isso você ja tem no seu código
yesButton.setHorizontalTextPosition(SwingConstants.RIGHT);
yesButton.addItemListener(new YesButtonHandler());
frame.getContentPane().add(yesButton, BorderLayout.EAST);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setSize(100,100);
frame.setVisible(true);
}
//Para deixar o código do jeito que quer, voce tem que fazer isso aqui
private class YesButtonHandler implements ItemListener{
public void itemStateChanged(ItemEvent event){
if(casados.equals(“sim”))
yesButton.setSelected(true);
else
yesButton.setSelected(false);
}
}//fim da classe yesButton
private class NoButtonHandler implements ItemListener{
public void itemStateChanged(ItemEvent event){
if(casados.equals(“nao”))
noButton.setSelected(true);
else
noButton.setSelected(false);
}
}
}[/code]
Valeu Douglas!!! Agora pudi entender e funcionou!
Valeu! :thumbup: :thumbup: :thumbup: