Como resgatar ov valores de uma Jtable para um JcomboBox do tipo Object no Java

Olá pessoal, espero que estejam bem, preciso de ajuda, eu aprendir como popular minha Jcomobox atraves do meu banco de dados, funcionou bem, mas estou tendo problemas em regatar os valores que estão do jtable para ela, por exemplo cadastrei o cliente e ao clicar nele todas as informações vão as suas devidas Jlabels e JcomboBox menos a informação que eu alterei a jcomobox pra pegar dados do banco de dados. Desculpem eu me perco um pouco com objeto, mas se nao conseguir ser claro me avisem que tentarei. o meu codigo ta da sequinte forma:

// aqui eu pego os dados do profissional no meu DAO
public void tabelaprof() {

        DefaultTableModel prof = (DefaultTableModel) tabelaprof.getModel();
        prof.setNumRows(0);
        CadProfissionalDAO prdao = new CadProfissionalDAO();
        for (CadProfissional pro : prdao.lerfk()) {

            prof.addRow(new Object[]{
                pro.getNome(),
                pro.getMatricula(),
                pro.getCpf(),
                pro.getCrm(),
                pro.getEspecialidade().getDescricao(),
                pro.getEspecialidade().getValor()                                
            });

        }
}

/* aqui eu envio as informações para as respectivas labels e comboBox ao clicar*/


  if (tabelaprof.getSelectedRow() != -1) {
            Jnome.setText(tabelaprof.getValueAt(tabelaprof.getSelectedRow(), 0).toString());
            Jmatricula.setText(tabelaprof.getValueAt(tabelaprof.getSelectedRow(), 1).toString());
            Jcpf.setText(tabelaprof.getValueAt(tabelaprof.getSelectedRow(), 2).toString());
            Jcrm.setText(tabelaprof.getValueAt(tabelaprof.getSelectedRow(), 3).toString());
            boxespecialidade.setSelectedItem(tabelaprof.getValueAt(tabelaprof.getSelectedRow(), 4).toString());
            Jvalor.setText(tabelaprof.getValueAt(tabelaprof.getSelectedRow(), 5).toString());
   ......

É essa linha que eu nao consigo corrigir ja fiz de tudo mas nao consigo que ao clicar a informação que esta aparecendo na Jtable aparece nele ( ja tirei e colocoquei esse toString)

 boxespecialidade.setSelectedItem(tabelaprof.getValueAt(tabelaprof.getSelectedRow(), 4).toString());

Esses valores existem na JComboBox?

1 curtida

Sim!!! ao cadastrar o medico, eu escolho a especialidade desse medico no combobox ( que esta com Todas as especialdiades que a clinica atende no banco de dados) e ao salvar os dados do medico aparece na Jtable, tudo inclusive a especialidade que eu salvei, o problema é quando eu quero pegar os valores para editar por exemplo. todos retornam, menos a do combo box que está como object.

Vamos deixar mais organizado:

private String getData(int coluna) {
    return "" + tabelaprof.getValueAt(tabelaprof.getSelectedRow(), coluna);
}

   //Chama assim depois. 
   boxespecialidade.setSelectedItem(String.valueOf(getData(0)));

Já aproveita pra padronizar tudo:

   Jnome.setText(String.valueOf(getData(0)));
   Jmatricula.setText(String.valueOf(getData(1)));
   .....

Fiquei em duvida de onde devo colocar esse codigo:
private String getLinha(int coluna) {
return “” + tabelaprof.getValueAt(tabelaprof.getSelectedRow(), coluna);
}

Quando for posta código aqui, seleciona ele todo e clica em </> pra ficar melhor a visualização.

Isso é um método, coloca fora do tabelaprof(){}

Obrigado pela atenção cara de verdade!!! Eu não vou conseguir fazer agora pq já estou deitado rsrs, mas amanhã assim que voltar do trabalho irei fazer, e trarei a resposta aqui se deu certo, de toda forma a início, obrigado pela atenção!!+

1 curtida

Moço não deu certo!! não sei se é porque eu não estou sabendo aplicar o código que me passou, mas aparece o erro
da erro dizendo pra criar o metodo data e quando executo aparece esse erro:
Uncompilable source code - Erroneous tree type: <any>

Tem caractere inválido aí.

private String getData(int coluna) {
    return "" + tabelaprof.getValueAt(tabelaprof.getSelectedRow(), coluna);
}

public void tabelaprof() {…}

Faz assim, põe em cima do tabelaprof

Coloquei e agora?/

vc nao quer me passar seu whats ou insta pra tentar me ajudar? eu realmente nao estou conseguindo resolver, e o problema é que é para o projeto de tcc :confused:

TCC? Vc está na faculdade?

A gente consegue resolver por aqui.

Enfim, você vai fazer isso:

private String getData(int coluna) {
    return "" + tabelaprof.getValueAt(tabelaprof.getSelectedRow(), coluna);
}

public void tabelaprof() {…}

E depois é só chamar do jeito que eu falei ali em cima.

Como vc fez? Manda aqui

nao é curso tecnico… fiz dessa forma pegou todos os dados normais menos o que eu queria que é o JcomboBox

Certo, mostra os dados que estão na sua comboBox

essa duas telas a que tem a comBox esta pegando os dados do banco de dados que é a outra imagem

Tela%20heide

Blz, faz o seguinte, printa esse valor.

System.out.println("VALOR P/ COMBO::: " + getData(4));

joga isso dentro do mouseClicked. Aparentemente está tudo certo, testei o código aqui e está funcionando normal também.

Olha printando deu certo, ele printa, inclusive se eu colocar pra setar numa JtextField ele faz, só que o comboBox ta como objeto e nao como String acho que é por isso o erro… escrever%20o%20valor%20da%20box

Não, isso na verdade não tem influência. Até pq fizemos a conversão usando o String.valueOf(...)

Problema resolvido,

o @iran-estudos estava passando o Objeto para a JComboBox ao invés da String, ele mudou e conseguiu resolver!

1 curtida