Bom dia.
Tenho uma Jatble com os items que que eu já adicionei através do botão gravar, ao clicar em cima da linha ele retorna os valores para jtextfield e jcombobox. Porem quando eu vou alterar e mandar gravar ele da o erro que o jcombobox está mandando null.
segue os metodos.
CLICAR NA TABELA
private void jTable1MouseClicked(java.awt.event.MouseEvent evt) {
if (evt.getClickCount() == 1) {
Object obj = (jTable1.getValueAt(jTable1.getSelectedRow(), 0)); //coluna 0
String Id = obj.toString();
Object obj1 = (jTable1.getValueAt(jTable1.getSelectedRow(), 1)); //coluna 1
String nome = obj1.toString();
Object obj2 = (jTable1.getValueAt(jTable1.getSelectedRow(), 2)); //coluna 2
String Desc = obj2.toString();
Object obj3 = (jTable1.getValueAt(jTable1.getSelectedRow(), 3)); //coluna 2
String ali = obj3.toString();
JbAlimentos.setEditable(true);
JbAlimentos.setSelectedItem(obj3);//aqui pego o valor da linha selecionada na coluna 3 e adiciono ao jcombobox
JbAlimentos.setEditable(false);
Codigo.setText(Id);//aqui pego o valor da linha selecionada na coluna 0 e adiciono ao jtextfield
Nome.setText(nome);//aqui pego o valor da linha selecionada na coluna 1 e adiciono ao jtextfield
Descricao.setText(Desc);//aqui pego o valor da linha selecionada na coluna 2 e adiciono ao jtextfield
}
}
METODO ALTERAR
private void Alterar() {
if (JbAlimentos.getSelectedIndex() > 0) {
Alimentacao tipo = (Alimentacao) JbAlimentos.getSelectedItem();
id = tipo.getIdalimentacao();
} else {
JOptionPane.showMessageDialog(null, "Favor Preencher Selecione a Alimentação");
return;
}
if ((Nome.getText().isEmpty())) {
JOptionPane.showMessageDialog(null, "Favor Preencher os Campos em Negrito");
return;
} else {
lotes.setIdlotes(new Integer(Codigo.getText()));
lotes.setLot_nome(Nome.getText());
lotes.setLot_desc(Descricao.getText());
lotes.setAlimentacao_idalimentacao(id);
daoL.atualiza(lotes);
JOptionPane.showMessageDialog(null, "Lote " + Nome.getText() + " Alterado com sucesso! ");
}
// apaga os dados preenchidos nos campos de texto
Codigo.setText("");
Nome.setText("");
Descricao.setText("");
refresh();
}
METODO QUE LISTA OS ITEM DO COMBO.
private void ComboAlimentacao() {
ListarControle controleitem = new ListarControle();
controleitem.listarAlimentacao();
List<Alimentacao> itens = controleitem.listarAlimentacao();
DefaultComboBoxModel modeloAli = new DefaultComboBoxModel();
modeloAli.addElement("Selecione a Alimentação");
for (int i = 0; i < itens.size(); i++) {
modeloAli.addElement(itens.get(i));
}
JbAlimentos.setModel(modeloAli);
// JbAlimentos.setSelectedIndex(-1);
}
public class ListarControle {
public List listarAlimentacao() {
ControleAlimentacaoDao dao = new ControleAlimentacaoDao();
try {
return dao.ConsultaAlimentacaoLote(alimentacao);
} catch (Exception ex) {
JOptionPane.showMessageDialog(null, ex);
}
return null;
}
}
Oque eu percebi, é que se eu clicar na tabela e clicar no combo e marca o mesmo item ele ALTERA, mas só clicando na tabela ele retorna o nome correto, porem fica como null.