[RESOLVIDO]Pegar dados da Jtable e Jogar num JcomboBox do tipo Object

Tenho uma tela para cadastrar Pedidos, nessa tela uma JcomboBox com Objetos clientes vindo do banco(só estou mostrando o nome dos clientes nessa JcomboBox). Quando cadastro um novo pedido, os dados vão para uma Jtable, porem quero selecionar a linha da Jtable e trazer o nome do cliente para minha JcomboBox, já tentei utilizar o cmb.SetSelectedItem(); porem não aceita dados do tipo Objeto ;/

(Veja na foto, a linha selecionada esta com todos os dados no seus respectivos lugares, menos a ComboBox Cliente)

Como vc não postou código, tenta isso:

        String result = "" + tabela.getValueAt(tabela.getSelectedRow(), 1);
        combo.removeAllItems(); //Remove os itens antigos e deixa o combo sempre com um item, se você quiser um histórico de nomes, pode remover essa linha
        combo.addItem(result); //adiciona o item da tabela, nesse caso pega a linha selecionada (getSelectedRow), e a coluna 1. Lembrando que a coluna começa do 0;
        combo.setSelectedItem(result); //Deixa o item que veio da tabela já selecionado no combo

image

//função para popular combobox pegando info do banco de dados
public void popularCmb(){
    ClienteDAO cdao = new ClienteDAO();
    DefaultComboBoxModel comboMobel = (DefaultComboBoxModel) cmb_cliente.getModel();
    for (Cliente c : cdao.find()) {
        comboMobel.addElement(c);
    }
}
txt_ID.setText(jTable6.getValueAt(jTable6.getSelectedRow(), 0).toString());
    txt_vale.setText(jTable6.getValueAt(jTable6.getSelectedRow(), 1).toString());
    txt_nfe.setText(jTable6.getValueAt(jTable6.getSelectedRow(), 2).toString());
    cmb_situacao.setSelectedItem(jTable6.getValueAt(jTable6.getSelectedRow(), 3).toString()); 
    cmb_cliente.setSelectedItem(jTable6.getValueAt(jTable6.getSelectedRow(), 4)); // ESSA LINHA NAO FUNCIONA
    txt_peso.setText(jTable6.getValueAt(jTable6.getSelectedRow(), 5).toString());
    txt_valor.setText(jTable6.getValueAt(jTable6.getSelectedRow(), 6).toString());

Aqui é o codigo de quando eu seleciono a linha na Jtable e os dados vão para os JtextField(FUNCIONAM!) e a ComboBox cliente(NAO FUNCIONA)

Não precisa usar esse popularCmb, faz assim:

        String result = "" + jTable6.getSelectedRow(), 4)
        cmb_cliente.removeAllItems(); //Remove os itens antigos e deixa o combo sempre com um item, se você quiser um histórico de nomes, pode remover essa linha
        cmb_cliente.addItem(result); //adiciona o item da tabela, nesse caso pega a linha selecionada (getSelectedRow), e a coluna 1. Lembrando que a coluna começa do 0;
        cmb_cliente.setSelectedItem(result); //Deixa o item que veio da tabela já selecionado no combo

Preciso sim, pois essa é a tela de cadastrar/editar/excluir clientes, se eu fizer desse jeito que vc me passou, todos os outros nomes de clientes vao sumir e só vai sobrar o qual eu cliquei

combo.removeAllItems(); //Remove os itens antigos e deixa o combo sempre com um item, se você quiser um histórico de nomes, pode remover essa linha

Os cliente já estão no combo?

sim, pois ao iniciar o programa eu invoco o metodo de popularCmb (popula o comboBox com os objetos clientes)


Ao clicar na linha, todos os meu dados vão para os determinados lugares, menos o cmb_cliente que é do tipo objeto, ele nao aceita SetSelectedItem(jTable6.getValueAt(jTable6.getSelectedRow(), 4)

        String result = "" + jTable6.getSelectedRow(), 4) //Pega a linha selecionada da coluna 4
        cmb_cliente.setSelectedItem(result); //Deixa o item que veio da tabela já selecionado no combo

nao funcionou pq a cmb_cliente é do Tipo Object

Mas mano, eu acabei de fazer isso aqui e deu certo. A ComboBox aceita String dentro dela tranquilo…

eu sei, no caso a outra combobox que tenho (cmb_situação) pega os valores da tabela, pq é tipo String mas essa cmb_cliente é tipo Object enão pega valores da jtable

Até muda os nomes, porem quando clico em lançar/atualizar da este erro:
Exception in thread "AWT-EventQueue-0" java.lang.ClassCastException: java.lang.String cannot be cast to model.bean.Cliente
Pois cliente é uma FK na tabela pedido

Recupera os dados da JTable da forma que você já fazia, após recuperar cria um novo objeto do tipo que sua combo possuí, feito isso basta setar o objeto na combo que deve funcionar.

Exemplo: (Imagino que sua combo já esteja preenchida)

String id = suaJTable.getValueAt(suaJTable.getSelectedRow(), 0).toString();
String nome = suaJTable.getValueAt(suaJTable.getSelectedRow(), 1).toString();

SeuObjeto obj = new SeuObjeto(id, nome);

suaCombo.setSelectedItem(obj);
cliente = (Cliente)jTable6.getValueAt(jTable6.getSelectedRow(), 4);
cmb_cliente.setSelectedItem(cliente);

fiz desta maneira, porem não esta mudando o nome na JComboBox que já estava preenchida.

Como vc tá pegando o item na hora de lançar/atualizar?

Faturamento f = new Faturamento();

f.setCliente((Cliente)cmb_cliente.getSelectedItem());

Tenta só com: combo.getSelectedItem();, até pq fazendo: Object result.... Vc não tá referenciando nada do model Cliente