Como converter o valor de char para string um combobox?

9 respostas
J

Olá pessoal!

Tô encontrando o seguinte impasse no meu projeto:
[color=blue]
method setTxTurma in class br.com.Dominio.Aluno cannot be applied to given types;
required: char
found: java.lang.String
reason: actual argument java.lang.String cannot be converted to char by method invocation conversion[/color]

O set é o seguinte:

Como faço para converter quando o tipo é char?

9 Respostas

N

Pelo que entendi o método setTxTurma recebe um caractere como argumento e você está passando uma string. Só que uma string é composta de vários caracteres. Você não pode transformar vários caracteres em um só, daí a exceção.

Você até pode obter um caractere da string com string.chatAt(i) mas o que recomendo é que mude o método setTxTurma para receber uma string como argumento ou o tipo de dado que cmdTurnoAluno.getSelectedItem() retorna.

J

Oi!

Eu tentei resolver da seguinte forma:

char turma = cmdTurnoAluno.getSelectedItem(); aluno.setTxTurma(turma);
Mas não dá certo.
Na linha char turma = cmdTurnoAluno.getSelectedItem(); dá um erro assim:
[color=blue]
inconvertible types
required: char
found: java.lang.Object[/color]

Como faço para setar esse combobox?

Alguém ajuda! :cry:

J

njava:
Pelo que entendi o método setTxTurma recebe um caractere como argumento e você está passando uma string. Só uma string é composta de vários caracteres. Você não pode transformar vários caracteres em um só, daí a exceção.

Você até pode obter um caractere da string com string.chatAt(i) mas o que recomendo é que mude o método setTxTurma para receber uma string como argumento ou o tipo de dado cmdTurnoAluno.getSelectedItem() deveria retornar?

Como é que faço o set?
Assim?

Desse modo dá o seguinte impasse:
[color=blue]method charAt in class java.lang.String cannot be applied to given types;
required: int
found: java.lang.Object
reason: actual argument java.lang.Object cannot be converted to int by method invocation conversion[/color]

Quero deixar char mesmo, mas a dúvida é como setar o combobox que recebe char.

Tenho um combobox que grava no banco uma string, e eu passo ele assim:

e dá certo. Só não sei como setar um combobox que recebe char. :frowning:

N

Jackye:
Oi!

Eu tentei resolver da seguinte forma:

char turma = cmdTurnoAluno.getSelectedItem(); aluno.setTxTurma(turma);
Mas não dá certo.
Na linha char turma = cmdTurnoAluno.getSelectedItem(); dá um erro assim:
[color=blue]
inconvertible types
required: char
found: java.lang.Object[/color]

Como faço para setar esse combobox?

Alguém ajuda! :cry:

Em char turma = cmdTurnoAluno.getSelectedItem(); você está tentando atribuir um objeto do tipo Object a um char. Você não pode fazer isso. Você poderia fazer, por exemplo, Object turma = cmdTurnoAluno.getSelectedItem(); e definir o tipo de argumento do método aluno.setTxTurma(turma) como Object;

“inconvertible types” significa que você está tentando atribuir um objeto de um tipo de dado a uma variável de outro tipo de dado que não são compatíveis entre si.
“required: char” significa que variável esperava receber um valor to tipo char.
“found: java.lang.Object” significa que a variável recebeu um valor do tipo Object.

Você até pode atribuir um char a um Object, mas não pode fazer o contrário que foi o que você fez.

Se cmdTurnoAluno é um ComboBox, então cmdTurnoAluno.getSelectedItem() vai retornar um objeto do tipo Object.

Você eventualmente pode fazer um casting. Se por exemplo, souber que o tipo de dado armazenado no ComboBox é um char você poderia fazer char turma = (char)cmdTurnoAluno.getSelectedItem(); . Se o objeto armazenado no combobox que você está recuperando for um char, o cast irá convertê-lo para o tipo de dados correto, caso contrário você obterá um erro.

J

Olá,

Então, como eu seto um combobox que grava um char no banco de dados?

Até. :slight_smile:

N

Para inserir um valor no combobox você pode fazer cmdTurnoAluno.addItem(‘a’); para adicionar um novo elemento.

Quanto a alterações em banco de dados acho que não sou a melhor pessoa para responder. :stuck_out_tongue:

J

Oi. :slight_smile:

O combobox já lista as turmas (A, B, C, D…), o usuário faz só escolher a turma que pertence.

Aí, a dúvida é: como setar o valor que foi escolhido no combobox pelo usuário.

N

Você vai ter que fazer tratamento de eventos.

Primeiro adicione um listener ao combobox. Neste caso um listener que é invocado quando um item é selecionado ou de-selecionado pelo usuário:

cmdTurnoAluno.addItemListener(new java.awt.event.ItemListener() {
            @Override
            public void itemStateChanged(java.awt.event.ItemEvent evt) {
                cmdTurnoAlunoItemStateChanged(evt);
            }
        });

Depois crie o método que será chamado quando o evento ocorrer.

private void cmdTurnoAlunoItemStateChanged(java.awt.event.ItemEvent evt) {
      // não esqueça de testar se não é null
      char c = (char)cmdTurnoAluno.getSelectedItem().toString();
      // faz alguma coisa com c. Exemplo, imprime na tela.
      System.out.println(c);
    }
J

Olá njava!

Eu tentei mas não dar certo.
Sempre dá erro na linha:

Então se setar sem precisar criar outros métodos dá certo?
Meu combobox recebe as turmas (A, B, C…) então no Banco de dados defini como CHAR.
Agora pra setar eu fiz assim:

char turmaAluno = (char) cmbTurma.getSelectedItem().toString(); aluno.setTxTurma(turmaAluno);
Mas dá erro na linha char turmaAluno = (char) cmbTurma.getSelectedItem().toString();

De qualquer forma que foi citada sempre mostra uma mensagem que diz:
[color=blue]
inconvertible types
required: char
found: java.lang.String[/color]

Já tirei o .ToString, aí aparece a mensagem:
[color=blue]inconvertible types
required: char
found: java.lang.Object[/color]

Como faço pra trabalhar com combobox que recebe char? Alguém sabe?

Criado 27 de fevereiro de 2012
Ultima resposta 3 de mar. de 2012
Respostas 9
Participantes 2