GetSelectedIndex não captura texto

Estou tendo problemas para armazenar os dados dos campos que usam getSelectedIndex abaixo:

[code]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);
    }
}[/code]

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

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.

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

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

  • 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?

setUf retorna String e quero setar o nome da uf

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!

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

É 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);