Bom Dia, Não Estou conseguindo buscar uma informação de um item selecionado do Jcombobox e fazer com que a sua informação seja carregada dinamicamente no JTextField, não sei se ficou claro mas segue o código, ele dá um erro de conversão de String para Objeto.
/Esté é o método que faz a pesquisa e joga no JTextField, porém dá esse erro de conversão/
public void pegaPrecoUnitario(){
Produto p = (Produto)cbProduto.getSelectedItem();
String valor = p.getPreco().toString();
txtPrecoUni.setText(String.valueOf(valor));
}
/Este é o Método pra popular os JComboBox/
public void carregarComboBox() {
for (Cliente item : clienteDAO.pesquisar(cliente)) {
cbCliente.addItem(item.getNome());
}
for (Produto item : produtoDAO.pesquisar(produto)) {
cbProduto.addItem(item.getNome());
}
}
/Este é o evento para aparecer a informação dinamicamente no JTextField/
private void cbProdutoItemStateChanged(java.awt.event.ItemEvent evt) {
pegaPrecoUnitario();
}
Alguém pode me Ajudar?
Você está populando seu JComboBox
com String
, por isso dá erro quendo você faz Produto p = (Produto) cbProduto.getSelectedItem();
, uma String
não é um Produto
.
Sugiro que utilize um ComboBoxModel
para popular seu Combo
.
Crie uma variável de instância para armazenar os produtos que você pesquisou:
private List<Produto> produtos;
Crie um ComboBoxModel
para renderizar essa lista de produtos:
private class ModeloComboProdutos extends DefaultComboBoxModel<String> {
@Override
public int getSize() {
return produtos == null ? 0 : produtos.size();
}
@Override
public String getElementAt(int index) {
Produto produto = produtos.get(index);
return produto.getNome();
}
}
E no local onde você instancia seu JComboBox
, instancie dessa forma:
cbProduto = new JComboBox<>(new ModeloComboProdutos());
E para atualizar o conteúdo do combo, basta fazer isso:
produtos = produtoDAO.pesquisar(produto);
E finalmente para atualizar o JTextField
do preço, faça assim:
public void pegaPrecoUnitario() {
int index = cbProduto.getSelectedIndex();
Produto produto = produtos.get(index);
String valor = String.valueOf(produto.getPreco());
txtPrecoUni.setText(valor);
}
1 curtida
Agora ele esta apontando como Null?
public void pegaPrecoUnitario(){
int index = cbProduto.getSelectedIndex();
Nesta Linha-->>>> produto = produtos.get(index);
String valor = String.valueOf(produto.getPreco());
txtPrecoUni.setText(valor);
}
É que você não inicializou o atributo.
como que faço isso, estou na faculdade sou novo