Como selecinar Sim/Não na combobox e exibir campos abaixo de acordo com a seleção

4 respostas
F

Pessoal… como faz no formulário… vai ter uma combobox com dois itens… sim ou não… se eu selecionar sim … irá exibir tal tipo de campo abaixo e se selecionar não… irá exibir outro tipo de campo abaixo… como posso fazer isso em ?

4 Respostas

Rodrigo_Sasaki

no onchange desse seu combo, você terá que setar uma propriedade que irá dizer qual o tipo de campo abaixo, e no campo abaixo utilizar a propriedade rendered, para definir qual deve ser exibido. Deu pra entender?

É o que eu consigo imaginar, baseado nas informações que você forneceu.

F

se tiver o trecho do código eu agradeço.

F

Isso é usando swing?
Se for, acho que tu pode pegar o Button Group, adicionar um actionListener e testar a fonte da ação.
Exemplo:

bGroup.getSelection().addActionListener(new ActionListener() {
			
			@Override
			public void actionPerformed(ActionEvent e) {
				if (e.getSource().equals(radioButtonSim))
					faz tal coisa
				else if (e.getSource().equals(radioButtonNao))
					faz outra coisa
			}
		});

Não cheguei a testar, portanto não sei se resolve.
Teste aí.

E

Um exemplo completo, escrito com o plugin WindowBuilder.

package guj;

import java.awt.EventQueue;

import javax.swing.JFrame;
import javax.swing.JPanel;
import java.awt.BorderLayout;
import javax.swing.JRadioButton;
import javax.swing.border.TitledBorder;
import java.awt.CardLayout;
import javax.swing.GroupLayout;
import javax.swing.GroupLayout.Alignment;
import javax.swing.JLabel;
import javax.swing.JTextField;
import javax.swing.LayoutStyle.ComponentPlacement;
import javax.swing.ButtonGroup;
import java.awt.event.ActionListener;
import java.awt.event.ActionEvent;

public class ExemploCheckboxAlternaCampos extends JFrame {
    private JPanel pnlRadioButtons;
    private JRadioButton rdoPessoaFisica;
    private JRadioButton rdoPessoaJuridica;
    private JPanel pnlInformacoes;
    private JPanel pnlPessoaFisica;
    private JPanel pnlPessoaJuridica;
    private JLabel lblCpf;
    private JTextField txtCPF;
    private JLabel lblNomeDoCnjuge;
    private JTextField txtNomeConjuge;
    private JLabel lblCnpj;
    private JTextField txtCNPJ;
    private JLabel lblNomeDeFantasia;
    private JTextField txtNomeFantasia;
    private final ButtonGroup buttonGroup = new ButtonGroup();

    /**
     * Launch the application.
     */
    public static void main(String[] args) {
        EventQueue.invokeLater(new Runnable() {
            public void run() {
                try {
                    ExemploCheckboxAlternaCampos frame = new ExemploCheckboxAlternaCampos();
                    frame.setVisible(true);
                } catch (Exception e) {
                    e.printStackTrace();
                }
            }
        });
    }

    /**
     * Create the frame.
     */
    public ExemploCheckboxAlternaCampos() {
        setTitle("Exemplo CheckBox");
        setBounds(100, 100, 450, 300);
        setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        getContentPane().add(getPnlRadioButtons(), BorderLayout.NORTH);
        getContentPane().add(getPnlInformacoes(), BorderLayout.CENTER);

    }

    private JPanel getPnlRadioButtons() {
        if (pnlRadioButtons == null) {
            pnlRadioButtons = new JPanel();
            pnlRadioButtons.setBorder(new TitledBorder(null, "Tipo da Pessoa", TitledBorder.LEADING, TitledBorder.TOP, null, null));
            pnlRadioButtons.add(getRdoPessoaFisica());
            pnlRadioButtons.add(getRdoPessoaJuridica());
        }
        return pnlRadioButtons;
    }

    private JRadioButton getRdoPessoaFisica() {
        if (rdoPessoaFisica == null) {
            rdoPessoaFisica = new JRadioButton("Pessoa F\u00EDsica");
            rdoPessoaFisica.setSelected(true);
            rdoPessoaFisica.addActionListener(new ActionListener() {
                public void actionPerformed(ActionEvent e) {
                    ((CardLayout) getPnlInformacoes().getLayout()).show(getPnlInformacoes(), "Pessoa Fisica");
                }
            });
            buttonGroup.add(rdoPessoaFisica);
        }
        return rdoPessoaFisica;
    }

    private JRadioButton getRdoPessoaJuridica() {
        if (rdoPessoaJuridica == null) {
            rdoPessoaJuridica = new JRadioButton("Pessoa Jur\u00EDdica");
            rdoPessoaJuridica.addActionListener(new ActionListener() {
                public void actionPerformed(ActionEvent e) {
                    ((CardLayout) getPnlInformacoes().getLayout()).show(getPnlInformacoes(), "Pessoa Juridica");
                }
            });
            buttonGroup.add(rdoPessoaJuridica);
        }
        return rdoPessoaJuridica;
    }

    private JPanel getPnlInformacoes() {
        if (pnlInformacoes == null) {
            pnlInformacoes = new JPanel();
            pnlInformacoes.setBorder(new TitledBorder(null, "Informa\u00E7\u00F5es", TitledBorder.LEADING, TitledBorder.TOP, null,
                    null));
            pnlInformacoes.setLayout(new CardLayout(0, 0));
            pnlInformacoes.add(getPnlPessoaFisica(), "Pessoa Fisica");
            pnlInformacoes.add(getPnlPessoaJuridica(), "Pessoa Juridica");
        }
        return pnlInformacoes;
    }

    private JPanel getPnlPessoaFisica() {
        if (pnlPessoaFisica == null) {
            pnlPessoaFisica = new JPanel();
            GroupLayout gl_pnlPessoaFisica = new GroupLayout(pnlPessoaFisica);
            gl_pnlPessoaFisica.setHorizontalGroup(gl_pnlPessoaFisica.createParallelGroup(Alignment.LEADING).addGroup(
                gl_pnlPessoaFisica.createSequentialGroup().addContainerGap().addGroup(
                    gl_pnlPessoaFisica.createParallelGroup(Alignment.LEADING).addComponent(getLblNomeDoCnjuge()).addComponent(
                        getLblCpf())).addPreferredGap(ComponentPlacement.RELATED).addGroup(
                    gl_pnlPessoaFisica.createParallelGroup(Alignment.LEADING).addComponent(getTxtCPF(), GroupLayout.DEFAULT_SIZE,
                        301, Short.MAX_VALUE).addComponent(getTxtNomeConjuge(), GroupLayout.DEFAULT_SIZE, 301, Short.MAX_VALUE))));
            gl_pnlPessoaFisica.setVerticalGroup(gl_pnlPessoaFisica.createParallelGroup(Alignment.LEADING).addGroup(
                gl_pnlPessoaFisica.createSequentialGroup().addContainerGap().addGroup(
                    gl_pnlPessoaFisica.createParallelGroup(Alignment.BASELINE).addComponent(getLblCpf()).addComponent(getTxtCPF(),
                        GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE)).addPreferredGap(
                    ComponentPlacement.RELATED).addGroup(
                    gl_pnlPessoaFisica.createParallelGroup(Alignment.BASELINE).addComponent(getLblNomeDoCnjuge()).addComponent(
                        getTxtNomeConjuge(), GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE)).addContainerGap(
                    101, Short.MAX_VALUE)));
            pnlPessoaFisica.setLayout(gl_pnlPessoaFisica);
        }
        return pnlPessoaFisica;
    }

    private JPanel getPnlPessoaJuridica() {
        if (pnlPessoaJuridica == null) {
            pnlPessoaJuridica = new JPanel();
            GroupLayout gl_pnlPessoaJuridica = new GroupLayout(pnlPessoaJuridica);
            gl_pnlPessoaJuridica.setHorizontalGroup(gl_pnlPessoaJuridica.createParallelGroup(Alignment.LEADING).addGroup(
                gl_pnlPessoaJuridica.createSequentialGroup().addContainerGap().addGroup(
                    gl_pnlPessoaJuridica.createParallelGroup(Alignment.LEADING).addComponent(getLblNomeDeFantasia()).addComponent(
                        getLblCnpj())).addPreferredGap(ComponentPlacement.UNRELATED).addGroup(
                    gl_pnlPessoaJuridica.createParallelGroup(Alignment.LEADING).addComponent(getTxtCNPJ(),
                        GroupLayout.DEFAULT_SIZE, 294, Short.MAX_VALUE).addComponent(getTxtNomeFantasia(),
                        GroupLayout.DEFAULT_SIZE, 294, Short.MAX_VALUE))));
            gl_pnlPessoaJuridica.setVerticalGroup(gl_pnlPessoaJuridica.createParallelGroup(Alignment.LEADING).addGroup(
                gl_pnlPessoaJuridica.createSequentialGroup().addContainerGap().addGroup(
                    gl_pnlPessoaJuridica.createParallelGroup(Alignment.TRAILING).addComponent(getLblCnpj()).addComponent(
                        getTxtCNPJ(), GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE)).addPreferredGap(
                    ComponentPlacement.RELATED).addGroup(
                    gl_pnlPessoaJuridica.createParallelGroup(Alignment.BASELINE).addComponent(getLblNomeDeFantasia()).addComponent(
                        getTxtNomeFantasia(), GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE)).addContainerGap(
                    101, Short.MAX_VALUE)));
            pnlPessoaJuridica.setLayout(gl_pnlPessoaJuridica);
        }
        return pnlPessoaJuridica;
    }

    private JLabel getLblCpf() {
        if (lblCpf == null) {
            lblCpf = new JLabel("CPF");
        }
        return lblCpf;
    }

    private JTextField getTxtCPF() {
        if (txtCPF == null) {
            txtCPF = new JTextField();
            txtCPF.setColumns(10);
        }
        return txtCPF;
    }

    private JLabel getLblNomeDoCnjuge() {
        if (lblNomeDoCnjuge == null) {
            lblNomeDoCnjuge = new JLabel("Nome do C\u00F4njuge");
        }
        return lblNomeDoCnjuge;
    }

    private JTextField getTxtNomeConjuge() {
        if (txtNomeConjuge == null) {
            txtNomeConjuge = new JTextField();
            txtNomeConjuge.setColumns(10);
        }
        return txtNomeConjuge;
    }

    private JLabel getLblCnpj() {
        if (lblCnpj == null) {
            lblCnpj = new JLabel("CNPJ");
        }
        return lblCnpj;
    }

    private JTextField getTxtCNPJ() {
        if (txtCNPJ == null) {
            txtCNPJ = new JTextField();
            txtCNPJ.setColumns(10);
        }
        return txtCNPJ;
    }

    private JLabel getLblNomeDeFantasia() {
        if (lblNomeDeFantasia == null) {
            lblNomeDeFantasia = new JLabel("Nome de Fantasia");
        }
        return lblNomeDeFantasia;
    }

    private JTextField getTxtNomeFantasia() {
        if (txtNomeFantasia == null) {
            txtNomeFantasia = new JTextField();
            txtNomeFantasia.setColumns(10);
        }
        return txtNomeFantasia;
    }
}
Criado 1 de junho de 2012
Ultima resposta 1 de jun. de 2012
Respostas 4
Participantes 4