Habilitar campos a partir do estado de um radioButton

1 resposta
S

ola estou com um problema e não consigo resolver, gostaria da ajuda de vocês.
em uma classe abstrata pai eu tenho um metodo para habilitar/desabilitar campos das filhas (com o setEnabled) e na minha filha eu criei um metodo para gerar campos, nele eu coloquei radioButtons e eu gostaria que se um radioButton estiver selecionado (com o isSelected()) ele vai desabilitar certos campos da filha.
so que toda vez que eu clico em um botão da minha classe eu tenho que chamar o metodo que habilita os campos para eu habilitar os campos (com exceção dos campos que eu gostaria de desabilitar ).
segue o comando do metodo:

private void habilitaCampos(boolean estado) {

    for (int i = 0; i < jpnFormulario.getComponentCount();i++){

             Component c = jpnFormulario.getComponent(i);
         
             if (c instanceof JTextField) {
                 JTextField campoTexto = (JTextField) c;
                 campoTexto.setEnabled(estado);
                 jtfPesquisar.setEnabled(true);
                 
                 }   
            }       
         }

onde jpnFormulario é o panel que recebe os textFIeld .

obrigado

1 Resposta

D

Não entendi a dúvida…
Mas, se for o que eu deduzi, o teu método não funciona pois o que você quer depende de algumas situações.
Por exemplo, suponha que você tem os seguintes JTextField: txt1, txt2, txt3 e os JRadioButton: rb1, rb2, rb3, quando rb1 é clicado, você pretende desabilitar txt1 e deixar habilitado txt2 e txt3. quando rb2 é clicado, deseja desabilitar txt2 e deixar habilitado txt1 e txt3. Além deles, o rb3 deve desabilitar txt3 e habilitar txt1 e txt2.
Veja que o teu método só recebe um parâmetro (o boolean estado). Ou seja, só consegue desabilitar ou habilitar todos os JTextField do teu JFrame.
Esqueça este método, crie outro onde você possa:
a) dizer qual é o rb ativo e, a partir dele, selecionar quais JTextFields serão habilitados e quais desabilitados.
b) possa informar quais são os JTextField a serem desativados, verificando, além do tipo (instanceof) o nome da variável para, só então, decidir se ativa ou desativa aquele JTextField.

Criado 1 de outubro de 2016
Ultima resposta 3 de out. de 2016
Respostas 1
Participantes 2