Pegando Strings de comboBox e transformando em Char

5 respostas
D

Ai galera, salve, salve…
seguinte to com dúvidas…hehehe
no meu form de cadastro eu tenho um campo q é sexo, na parte visual eu tenho uma comboBox com as 02 opções, mas no banco de dados eu tenho como se o dado fosse char…então eu preciso converter a String pra Char…eu tenho um metodo de validação de campos…é ai q eu tenho que fazer a conversão??
Aqui ta o código do método pra validar os campos:

//Método para validar o formulário
    private boolean validarObjeto(Usuario obj) {

        if((obj.getNome().length() <= 0) || (obj.getNome() == null)){
            Dialogos.mensagemErro("O nome da cidade deve ser informado");
            txtNome.requestFocus();
            return false;
        }
        if((obj.getLogin().length() <= 2) || (obj.getLogin() == null)){
            Dialogos.mensagemErro("O login deve ser informado");
            txtLogin.requestFocus();
            return false;
        }
        if((obj.getSenha().length() <= 0) || (obj.getSenha() == null)){
            Dialogos.mensagemErro("A senha deve ser informada");
            txtSenha.requestFocus();
            return false;
        }
        if((obj.getFuncao() == null)){
            Dialogos.mensagemErro("A função deve ser informada");
            cmbFuncao.requestFocus();
            return false;
        }
        if((obj.getSexo() == null)){
            Dialogos.mensagemErro("O sexo deve ser informado");
            cmbSexo.requestFocus();
            return false;
        }
        if((obj.getTelefone().length() <= 0) || (obj.getTelefone() == null)){
            Dialogos.mensagemErro("O telefone deve ser informado");
            txtTelefone.requestFocus();
            return false;
        }
        return true;
    }

e aqui esta o código do botão salvar:

validarObjeto(usuario1);//chama o método com a passagem dos parâmetros
        // passando o cidade1 pq ele é o objeto instanciado com as informações vindas do FormCidadeListagem
       
        try {
            if(validarObjeto(usuario1)){
                EntityManager em = JPAUtil.getEm();//faz em receber a transação da classe JPAUtil
                /*Pois cada fez que faz getEm() no JPAUtil, está sendo gerada uma nova EntityManager,
                 com transações isaladas. Por isso, deve usar a mesma entitymanager
                 para a transação de salvar o objeto.*/
                em.getTransaction().begin();
                em.merge(usuario1);
                em.getTransaction().commit();
                jd.dispose();  // para fechar a janela
                Dialogos.mensagem("Dados salvos com sucesso!");
            }
            } catch  (Exception e) {
                Dialogos.mensagem("Erro ao salvar: " + e.getMessage());
        }

E então galera, alguem pode me ajudar a encontrar o lugar certo pra fazer essa conversão e colocar no objeto??

Obrigado gente!!

5 Respostas

mInEiRo

Utilize o método toCharArray() da classe String

D

OI mInEiRo…
mas onde eu utilizo esse método? Tipo no código ai de cima onde eu coloco???
Não faço a mínima idéia…pode me ajudar?

mInEiRo

usa assim
char ch = variavel.charAt (0);

obj.setSexo( variavel.charAt (0) )

outra coisa

a linha
if((obj.getSenha().length() <= 0) || (obj.getSenha() == null))

vai dar nullPointer da mesma forma, vc valida o length primeiro e depois se ele é null, tem que ser assim

if((obj.getSenha() == null) || (obj.getSenha().length() <= 0) )

D

Oi mInEiRo td blz??
Olha so, obrigado pela dica, mas pelo q vi em alguns livros o método charAt é para pegar o número da posição específica de uma String…e na real o que eu quero é converter pra Char pra poder salvar no banco…
Ai depois de tentar fazer alguns métodos percebi que o que a comboBox esta me retornando são char…mas ai tipo, não preciso fazer a conversão…só que quando vou cadastrar e seleciono uma função ou o sexo (que são as comboBox) ele fica dizendo que a combo esta vazia…acredito que eu tenha que colocar algum valor por tras dos itens selecionados…mas eu não sei como fazer…

POde me ajudar??

D

Olha so, encontrei um jeito melhor d me expressar…
Acredito que há alguma propriedade na comboBox que eu tenha que mudar…sabe…tipo se o Feminino esta marcado então o valor em char é 0, se o masculino esta marcado então o valor em char é 1…ai fiz uma parte do código:

if((obj.getSexo() == null)){
            Dialogos.mensagemErro("O sexo deve ser informado");
            cmbSexo.requestFocus();
            return false;
        }else{
            String masc = "M";
            String fem = "F";
            val = (char) cmbSexo.getSelectedIndex();
            obj.setSexo(val);
            if (val == 0){
                obj.setSexo(fem.charAt(0));
            }
            else{
                obj.setSexo(masc.charAt(0));
            }
        }

Mas ele sempre continua dizendo que o sexo deve ser informado, como se o valor estivesse null…
Ai nas propriedade da combo:
selectedIndex ta como editor padrão e tem o valor de 0; e na propriedade selectedItem esta marcado o Feminino e ai se eu entrar nas propriedades tá assim: “Value from existing component”…
e vale lembrar que eu vinculei o elements e o selectedItem com a classe que dá origem ao form.

Pessoal, o q há de errado???

me ajudem please!!!

Criado 15 de setembro de 2009
Ultima resposta 16 de set. de 2009
Respostas 5
Participantes 2