GetSelectedIndex não captura texto

8 respostas
adriano_kahn
Estou tendo problemas para armazenar os dados dos campos que usam getSelectedIndex abaixo:
private void cadastro ()
    {
        try
        {
            Aluno alu = new Aluno();
            
            alu.setBairro(jTbairro.getText());
            alu.setCep(jTcep.getText());
            alu.setCidade(jTcidade.getText());
            alu.setComplemento(jTcomplemento.getText());
            alu.setCpf(jTcpf.getText());
            alu.setDataInicio(jTdataInicio.getText());
            alu.setDataNascimento(jTdataNascimento.getText());
            alu.setDataPagamento(jTdataPagamento.getText());
            alu.setEmail(jTemail.getText());
            alu.setEstadoCivil(jCestadoCivil.getSelectedIndex());
            alu.setLogradouro(jTlogradouro.getText());
            alu.setMatricula(Integer.valueOf(jTmatricula.getText()));
            alu.setNome(jTnome.getText());            
            alu.setNumero(jTnumero.getText());
            alu.setProfissao(jTprofissao.getText());
            alu.setRg(jTrg.getText());
            alu.setSexo(jCsexo.getSelectedIndex());
            alu.setTelefoneCelular(jTtelefoneCelular.getText());
            alu.setTelefoneResidencial(jTtelefoneFixo.getText());
            alu.setUf(jCuf.getSelectedIndex());
        }

        catch (SQLException ex)
        {
            JOptionPane.showMessageDialog(null, "Erro ao cadastrar\n "+ex);
        }
    }

O que pode ser?
Desde já obrigado a toda comunidade...

8 Respostas

ViniGodoy

Você não precisava usar o getSelected[b]Item/b? De qualquer jeito, provavelmente você vai ter que fazer algum tipo de cast.

Outra coisa. Esse seu código roda em alguma janela? Pq se rodar, o primeiro parâmetro do JOptionPane deveria ser this e não null.

adriano_kahn

a parte do this eu corrigi, más a parte do cast ainda não. Você poderia me dar algum exemplo?

adriano_kahn

se eu usasse esse exemplo:

alu.setUf(jCuf.getSelectedItem().toString());

daria certo, para o que quero? Pois para começar a testar ainda demorarei um pouco

Alexandro_Santos
  • Adriano o método setUf retorna que tipo de informação?
  • Que informação você quer setar na propriedade? o índice da uf ou o nome da uf?
adriano_kahn

setUf retorna String e quero setar o nome da uf

Alexandro_Santos

Adriano me perdoa pela demora no retorno, é que eu esta sem nenhum IDE instalado na minha máquina, testei aqui e é como você citou aí no final.
Fiz um teste de setar o texto do ComboBox num Label: jLabel1.setText(jComboBox1.getSelectedItem().toString()); A questão é que o getSelectedItem retorna um Object e o teu método está esperando uma String, então existe a necessidade de conversão. com o toString().

Um abraço!

adriano_kahn

e como faço essa conversão? Nunca fiz com objeto Jcombobox

ViniGodoy

É só chamar o toString() mesmo. Ou, se na hora que você inseriu dados na combo você colocou Strings, você pode usar

String valor = (String) combo.getSelectedItem();

Note que a combo suporta qualquer objeto dentro dela. Você pode até colocar suas classes inteiras lá. E é recomendado que você faça isso.
O que a combo exibe é o que o método toString() da sua classe retorna. A vantagem disso é que vc pode fazer uma combo de produtos, por exemplo, que mostre o nome do produto, mas usar o seu id.

Produto produto = (Produto) combo.getSelectedItem(); JAlterarProduto ap = new JAlterarProduto(produto); ap.setVisible(true);

Criado 4 de janeiro de 2011
Ultima resposta 5 de jan. de 2011
Respostas 8
Participantes 3