JcomboBox e JTextField

[b]Olá Pessoal,

Estou com uma dificuldade em relacionar nomes do combobox que foram puxados do banco a um textfield.

por exemplo:

Quando seleciono um nome no combo, quero que apareça código associado a este nome no txtfield.
Alguem pode-me ajudar?

Agradeço desde já.[/b]

Cara, voce tem que tratar o evento do JCombobox, para quando o usuario selecionar o JTextField receber o texto selecionado. Veja qual evento deves tratar e mande brasa.

Sua combobox deve ser preenchida com objetos, não com strings.

Vamos supor que você vá montar uma combo de cidades. Crie um objeto do tipo Cidade, e insira-o na Combo. Depois, basta tratar o evento do clique do mouse, como o colega descreveu, obter a cidade relacionada, pegar seu id e definir um JTextField qualquer.

Na verdade não estou usando nenhum evento.

Este é código:

[code]public void carregarComboProduto(){

  DefaultComboBoxModel cbox;
  ctrProdutos = new CTR_ManterProduto();
  List<Produto> produto = ctrProdutos.listarProdutos("nome");
  JCBoxNomeProduto.addItem("--Seleciona--");
  for (Produto listaproduto: produto)
  {
    cbox =(DefaultComboBoxModel)JCBoxNomeProduto.getModel();
    JCBoxNomeProduto.addItem((Produto)listaproduto);
        JTxtCodigoProduto.setText(String.valueOf(listaproduto.getCodigoProduto()));
        JTxtPreco.setText(String.valueOf(listaproduto.getValorVenda()));
  }
  }[/code]

Poderia por favor dar um exemplo?
O meu código esta listado no post anterior, vê me fala o que esta mal.

Att,
Lags

Cara vc deve implementar um listener para a sua classe JCBoxNomeProduto. De uma pesquisada em Listeners e JComboBox.

[b]Desculpa pessoal, mas não estou percebendo. Sabe o meu nível de conhecimento em java é inicial.

Eu ativei no combo o evento mouseClicked, nesse evento que vou chamar o método da combo ou vou emplementar algum código la?

Podem-me dar um exemplo baseado no meu código?

Desde já agradeço pela atenção.[/b]

Implementa o evento ActionListener. E dentro dele coloque System.out.println(seuCombo.getSelectedItem().toString()); e veja o que sera impresso.

Tente assim:

public void carregarComboProduto(){  
   ctrProdutos = new CTR_ManterProduto();  
   List<Produto> produto = ctrProdutos.listarProdutos("nome");  
   JCBoxNomeProduto.addItem("--Seleciona--");  
   for (Produto listaproduto: produto)  {  
      DefaultComboBoxModel cbox =(DefaultComboBoxModel)JCBoxNomeProduto.getModel();  
      JCBoxNomeProduto.addItem((Produto)listaproduto);  
   }  

   JCBoxNomeProduto.addActionListener(new ActionListener() {
      public void actionPerformed(ActionEvent evt) {
         Produto p = (Produto)JCBoxNomeProduto.getSelectedItem();
         JTxtCodigoProduto.setText(""+p.getCodigoProduto());
         JTxtPreco.setText(String.valueOf(p.getValorVenda()));
      }
   });
}  

Vini tentei usei o código deu este erro:

Warning: br\com\karinhaEstoque\imagens\ico_grafico.jpg modified in the future. Warning: br\com\karinhaEstoque\imagens\logo.jpg modified in the future. Compiling 2 source files to C:\Documents and Settings\Cliente\Desktop\KarinhaEstoque_Modficado\Karen Estoque\build\classes C:\Documents and Settings\Cliente\Desktop\KarinhaEstoque_Modficado\Karen Estoque\src\br\com\karinhaEstoque\view\formInclusaoVenda.java:1296: <anonymous br.com.karinhaEstoque.view.formInclusaoVenda$22> is not abstract and does not override abstract method actionPerformed(java.awt.event.ActionEvent) in java.awt.event.ActionListener JCBoxNomeProduto.addActionListener(new ActionListener() { C:\Documents and Settings\Cliente\Desktop\KarinhaEstoque_Modficado\Karen Estoque\src\br\com\karinhaEstoque\view\formInclusaoVenda.java:1299: cannot find symbol symbol : method getId() location: class br.com.karinhaEstoque.model.Produto JTxtCodigoProduto.setText(""+p.getId()); Note: C:\Documents and Settings\Cliente\Desktop\KarinhaEstoque_Modficado\Karen Estoque\src\br\com\karinhaEstoque\view\formInclusaoVenda.java uses unchecked or unsafe operations. Note: Recompile with -Xlint:unchecked for details. 2 errors C:\Documents and Settings\Cliente\Desktop\KarinhaEstoque_Modficado\Karen Estoque\nbproject\build-impl.xml:363: The following error occurred while executing this line: C:\Documents and Settings\Cliente\Desktop\KarinhaEstoque_Modficado\Karen Estoque\nbproject\build-impl.xml:168: Compile failed; see the compiler error output for details. FALHA NA CONSTRUÇÃO (tempo total: 2 segundos)

Troque getId() por getCodigoProduto()

vlw vini, melhorou, só que deu um outro erro.

C:\Documents and Settings\Cliente\Desktop\KarinhaEstoque_Modficado\Karen Estoque\src\br\com\karinhaEstoque\view\formInclusaoVenda.java:1284: <anonymous br.com.karinhaEstoque.view.formInclusaoVenda$21> is not abstract and does not override abstract method actionPerformed(java.awt.event.ActionEvent) in java.awt.event.ActionListener JCBoxNomeProduto.addActionListener(new ActionListener() { Note: Some input files use unchecked or unsafe operations. Note: Recompile with -Xlint:unchecked for details. 1 error C:\Documents and Settings\Cliente\Desktop\KarinhaEstoque_Modficado\Karen Estoque\nbproject\build-impl.xml:363: The following error occurred while executing this line: C:\Documents and Settings\Cliente\Desktop\KarinhaEstoque_Modficado\Karen Estoque\nbproject\build-impl.xml:168: Compile failed; see the compiler error output for details. FALHA NA CONSTRUÇÃO (tempo total: 6 segundos)

Por favor galera me ajudam, pois procurei por este erro não encontrei resposta nenhuma para isso.

Dá erro no:

JCBoxNomeProduto.addActionListener(new ActionListener()  

erro:<anonymous br.com.karinhaEstoque.view.formInclusaoVenda$20> is not abstract and does not override abstract method actionPerformed(java.awt.event.ActionEvent) in java.awt.event.ActionListener
JCBoxNomeProduto.addActionListener(new ActionListener()

É que actionPerformed é com A minusculo. Você não consegue ler você mesmo a mensagem de erro e corrigir? É que não tenho java instalado aqui.

Vc esta usando a classe para chamar o metodo ao inves de usar a variavel de referencia.

Vlw Vini, consegui resolver o problema.

Era só mudança de letra maiúscula para letra minúscula no actionPerformed.

Estava assim:public void ActionPerformed(ActionEvent evt)

era só mudar para:public void actionPerformed(ActionEvent evt)

É isso que se dá em programar horas e horas sem soltar o pc.

vlw.

Engraçado, descobri agora o erro e vi a sua mensagem também falando, era só mudança de “a” maiúscula para minúscula.

Muito obrigado Vini e Emmanuelrock .

Pessoal,

Estou com uma nova dúvida, como calculo automaticamente preço total?

A minha idéia é seguinte:

Quando seleciono produto no meu combo, traz com ele codigo e preço, porém queria que ao digitar quantidade, que seja calculada o preço total do produto.
Desde já agradeço pela atenção.

Galera estou precisando de uma ajuda relacionada a este Tópico este é meu evento ficou assim

[code]
public void carregarComboProduto(){
ClienteDAO dao = new ClienteDAO();
List cliente ;
cliente = new ClienteDAO().getListaClientes();
// ComboBoxCliente.addItem("–Seleciona–");
ComboBoxCliente.addItem(new String(""));
for (tblCliente listacliente: cliente) {
DefaultComboBoxModel cbox =(DefaultComboBoxModel)ComboBoxCliente.getModel();
ComboBoxCliente.addItem((tblCliente)listacliente);
System.out.println(listacliente.toString());
}

ComboBoxCliente.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent evt) {
tblCliente p = (tblCliente)ComboBoxCliente.getSelectedItem();
txtCodCliente.setText(String.valueOf(p.getClientePCod()));
}
}[/code]

Só que no Combobox está mostrando desce modo

CLASSES.tblCliente@1e0bc08
CLASSES.tblCliente@158b649
CLASSES.tblCliente@127734f

e não estou conseguindo resolver alguém pode me dar uma ajuda aí ?..