Tenho um evento do botão para realizar a ação de emprestimo, quando clickado ele chama o controller que faz a função do DAO do banco para retornar o equipamento para o combobox txtemprestimo, porem ao clickar em emprestar aparece o seguinte error “Exception in thread class java.lang.String cannot be cast to class model.Equipamento”.
Vou abreviar o codigo e deixarei o link do completo no meu github:(Outras classes importantes estão no github):
https://github.com/MarcosYusei/SemurCEI
Modelo Equipamento:
package model;
public class Equipamento
{
int id;
Unidade unidade = new Unidade();
TipoEquipamento tipoequip = new TipoEquipamento();
String tombo;
String serie;
Fornecedor fornecedor = new Fornecedor();
Fabricante fabricante = new Fabricante();
String modelo;
String status;
String equipamento;
String observacao;
public Equipamento(int id, Unidade unidade,TipoEquipamento tipoequip,String tombo, String serie, Fornecedor fornecedor, Fabricante fabricante, String modelo,
String status, String equipamento, String observacao)
{
this.id = id;
this.unidade = unidade;
this.tipoequip = tipoequip;
this.tombo = tombo;
this.serie = serie;
this.fornecedor = fornecedor;
this.fabricante = fabricante;
this.modelo = modelo;
this.status = status;
this.equipamento = equipamento;
this.observacao = observacao;
}
public Equipamento(Unidade unidade,TipoEquipamento tipoequip,String tombo, String serie, Fornecedor fornecedor, Fabricante fabricante, String modelo,
String status, String equipamento, String observacao)
{
this.unidade = unidade;
this.tipoequip = tipoequip;
this.tombo = tombo;
this.serie = serie;
this.fornecedor = fornecedor;
this.fabricante = fabricante;
this.modelo = modelo;
this.status = status;
this.equipamento = equipamento;
this.observacao = observacao;
}
public Equipamento()
{
}
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public Unidade getUnidade() {
return unidade;
}
public void setUnidade(Unidade unidade) {
this.unidade = unidade;
}
public TipoEquipamento getTipoequip() {
return tipoequip;
}
public void setTipoequip(TipoEquipamento tipoequip) {
this.tipoequip = tipoequip;
}
public String getTombo() {
return tombo;
}
public void setTombo(String tombo) {
this.tombo = tombo;
}
public String getSerie() {
return serie;
}
public void setSerie(String serie) {
this.serie = serie;
}
public Fornecedor getFornecedor() {
return fornecedor;
}
public void setFornecedor(Fornecedor fornecedor) {
this.fornecedor = fornecedor;
}
public Fabricante getFabricante() {
return fabricante;
}
public void setFabricante(Fabricante fabricante) {
this.fabricante = fabricante;
}
public String getModelo() {
return modelo;
}
public void setModelo(String modelo) {
this.modelo = modelo;
}
public String getStatus() {
return status;
}
public void setStatus(String status) {
this.status = status;
}
public String getEquipamento() {
return equipamento;
}
public void setEquipamento(String equipamento) {
this.equipamento = equipamento;
}
public String getObservacao() {
return observacao;
}
public void setObservacao(String observacao) {
this.observacao = observacao;
}
public String ModelotoString()
{
return getModelo();
}
public String StatustoString()
{
return getStatus();
}
public String EquiptoString()
{
return getModelo();
}
public String TombotoString()
{
return getTombo();
}
public String SerietoString()
{
return getSerie();
}
}
CadastroEmprestimoController.java:
package controller;
public class CadastroEmprestimoController
{
ArrayList<Emprestimo> emprestimos = new ArrayList<Emprestimo>();
private TelaCadastroEmprestimo view;
private CadastroEmprestimoHelper helper;
public TelaPrincipal TelaPrincipal;
public CadastroEmprestimoController(TelaCadastroEmprestimo view)
{
this.view = view;
this.helper = new CadastroEmprestimoHelper(view);
}
public CadastroEmprestimoController()
{
}
public void EmprestarEquipamento()
{
if(view.getTxtUnidade().getSelectedIndex() != 0 && view.getTxtTipoEquip().getSelectedIndex() != 0 && view.getTxtEquipamento().getSelectedIndex() != 0 && view.getTxtDestino().getSelectedIndex() != 0
&& view.getTxtNome().getSelectedIndex() != 0 && view.getTxtDataSaida().getDate()==null && view.getTxtDataDevolucao().getDate()==null && view.getTxtStatus().getSelectedIndex() != 0 && view.getTxtObservacao().getText().trim().isEmpty()
&& view.getTxtTombo().getSelectedIndex() != 0 && view.getTxtSerie().getSelectedIndex() != 0)
{
JOptionPane.showMessageDialog(null);
}
if(view.getTxtUnidade().getSelectedIndex() != 0 && view.getTxtTipoEquip().getSelectedIndex() != 0)
{
JOptionPane.showMessageDialog(null);
}
if(view.getTxtDestino().getSelectedIndex() != 0 && view.getTxtEquipamento().getSelectedIndex() != 0)
{
JOptionPane.showMessageDialog(null);
}
if(view.getTxtDataSaida().getDate()==null && view.getTxtDataDevolucao().getDate()==null)
{
JOptionPane.showMessageDialog(null);
}
if(view.getTxtStatus().getSelectedIndex() == 0)
{
JOptionPane.showMessageDialog(null);
}
if(view.getTxtTipo().getSelectedIndex() != 0)
{
JOptionPane.showMessageDialog(null);
}
if(view.getTxtTombo().getSelectedIndex() != 0 && view.getTxtSerie().getSelectedIndex() != 0)
{
JOptionPane.showMessageDialog(null);
}
if(view.getTxtUnidade().getSelectedItem() != null && view.getTxtTipoEquip().getSelectedItem() != null && view.getTxtEquipamento().getSelectedItem() != null
&& view.getTxtDestino().getSelectedItem() != null && view.getTxtNome().getSelectedItem() != null && view.getTxtDataSaida().getDate() != null && view.getTxtDataDevolucao().getDate() != null
&& view.getTxtStatus().getSelectedItem() != null && view.getTxtTipo().getSelectedItem() != null && view.getTxtTombo().getSelectedItem() != null & view.getTxtSerie().getSelectedItem() != null)
{
if(view.getTxtStatus().getSelectedItem().equals("INDISPONIVEL") || view.getTxtStatus().getSelectedItem().equals("MANUTENÇÃO")
|| view.getTxtStatus().getSelectedItem().equals("EMPRESTADO") || view.getTxtStatus().getSelectedItem().equals("SELECIONE UM STATUS"))
{
JOptionPane.showMessageDialog(null);
}
else
{
Emprestimo emprestimo = helper.obterModeloSemID();
try
{
Connection conexao = new Conexao().Conectar();
EmprestimoDAO emprestimoDAO = new EmprestimoDAO(conexao);
emprestimoDAO.inserir(emprestimo);
helper.bloquearCampos();
tabelaEmprestimo();
JOptionPane.showMessageDialog(null, "Equipamento emprestado com sucesso!");
}
catch(SQLException ex)
{
JOptionPane.showMessageDialog(null);
}
}
}
}
public void tabelaEmprestimo()
{
if(view.jTabelaCadEmprestimo != null)
{
DefaultTableModel modelo = (DefaultTableModel) view.jTabelaCadEmprestimo.getModel();
if(modelo.getRowCount() > 0)
{
modelo.setRowCount(0);
}
try
{
Connection conexao = new Conexao().Conectar();
EmprestimoDAO emprestimoDAO = new EmprestimoDAO(conexao);
ArrayList<Emprestimo> emprestimos = emprestimoDAO.selecioneAllEmprestimos();
for(Emprestimo emprestimo : emprestimos)
{
Object[] linha = new Object[12];
linha[0] = emprestimo.getId();
linha[1] = emprestimo.getUnidade().getUnidadenome();
linha[2] = emprestimo.getTipoequip().getTipoequipamento();
linha[3] = emprestimo.getEquipamento().getModelo();
linha[4] = emprestimo.getDestino().getUnidadenome();
linha[5] = emprestimo.getDataSaida();
linha[6] = emprestimo.getDataDevolucao();
linha[7] = emprestimo.getStatus();
linha[8] = emprestimo.getTipo();
linha[9] = emprestimo.getObservacao();
linha[10] = emprestimo.getTombo();
linha[11] = emprestimo.getSerie();
modelo.addRow(linha);
}
}
catch(SQLException ex)
{
JOptionPane.showMessageDialog(null);
}
}
}
public void atualizaUnidade()
{
try
{
//buscar unidade no banco de dados
Connection conexao = new Conexao().Conectar();
UnidadeDAO unidadedao = new UnidadeDAO(conexao);
ArrayList<Unidade> unidades = unidadedao.selecioneAllUnidade();
DefaultComboBoxModel combomodel = (DefaultComboBoxModel) view.getTxtUnidade().getModel();
combomodel.removeAllElements();
for(Unidade unidade : unidades)
{
combomodel.addElement(unidade);
}
}
catch(SQLException ex)
{
JOptionPane.showMessageDialog(null);
}
}
public void atualizarTipoEquip()
{
try
{
Connection conexao = new Conexao().Conectar();
TipoEquipamentoDAO tipoequipamentodao = new TipoEquipamentoDAO(conexao);
ArrayList<TipoEquipamento> tipoequipamentos = tipoequipamentodao.selecioneAllTipoEquipamento();
DefaultComboBoxModel combomodel = (DefaultComboBoxModel) view.getTxtTipoEquip().getModel();
combomodel.removeAllElements();
for(TipoEquipamento tipoequipamento : tipoequipamentos)
{
combomodel.addElement(tipoequipamento);
}
}
catch(SQLException ex)
{
JOptionPane.showMessageDialog(null);
}
}
public void atualizaEquipamento()
{
try
{
Connection conexao = new Conexao().Conectar();
EquipamentoDAO equipamentoDAO = new EquipamentoDAO(conexao);
ArrayList<Equipamento> equipamentos = equipamentoDAO.selecioneAllEquipamento();
DefaultComboBoxModel combomodel = (DefaultComboBoxModel) view.getTxtEquipamento().getModel();
combomodel.removeAllElements();
for(Equipamento equipamento : equipamentos)
{
combomodel.addElement(equipamento.EquiptoString());
}
}
catch(SQLException ex)
{
JOptionPane.showMessageDialog(null);
}
}
public void atualizardestino()
{
try
{
Connection conexao = new Conexao().Conectar();
UnidadeDAO unidadedao = new UnidadeDAO(conexao);
ArrayList<Unidade> unidades = unidadedao.selecioneAllUnidade();
DefaultComboBoxModel combomodel = (DefaultComboBoxModel) view.getTxtDestino().getModel();
combomodel.removeAllElements();
for(Unidade unidade : unidades)
{
combomodel.addElement(unidade);
}
}
catch(SQLException ex)
{
JOptionPane.showMessageDialog(null);
}
}
public void atualizaNome()
{
try
{
Connection conexao = new Conexao().Conectar();
NomeDAO nomeDAO = new NomeDAO(conexao);
ArrayList<Nome> nomes = nomeDAO.selecioneAllNome();
DefaultComboBoxModel combomodel = (DefaultComboBoxModel) view.getTxtNome().getModel();
combomodel.removeAllElements();
for(Nome nome : nomes)
{
combomodel.addElement(nome);
}
}
catch(SQLException ex)
{
JOptionPane.showMessageDialog(null);
}
}
public void atualizaTombo()
{
try
{
Connection conexao = new Conexao().Conectar();
EquipamentoDAO equipamentoDAO = new EquipamentoDAO(conexao);
ArrayList<Equipamento> equipamentos = equipamentoDAO.selecioneAllEquipamentoTombo();
DefaultComboBoxModel combomodel = (DefaultComboBoxModel) view.getTxtTombo().getModel();
combomodel.removeAllElements();
for(Equipamento equipamento : equipamentos)
{
combomodel.addElement(equipamento.TombotoString());
}
}
catch(SQLException ex)
{
JOptionPane.showMessageDialog(null);
}
}
public void atualizaEquipamentoModelo(String tipoequipamentonome)
{
try
{
Connection conexao = new Conexao().Conectar();
EquipamentoDAO equipamentoDAO = new EquipamentoDAO(conexao);
ArrayList<Equipamento> equipamentos = equipamentoDAO.selecionarAllModeloPorTipoEquip(tipoequipamentonome);
DefaultComboBoxModel combomodel = (DefaultComboBoxModel) view.getTxtEquipamento().getModel();
combomodel.removeAllElements();
for(Equipamento equipamento : equipamentos)
{
combomodel.addElement(equipamento.EquiptoString());
}
}
catch(SQLException ex)
{
JOptionPane.showMessageDialog(null);
}
}
public void atualizaComboTombo(String equip)
{
try
{
Connection conexao = new Conexao().Conectar();
EquipamentoDAO equipamentoDAO = new EquipamentoDAO(conexao);
ArrayList<Equipamento> equipamentos = equipamentoDAO.selecioneAllEquipamentoTomboStringEquip(equip);
DefaultComboBoxModel combomodel = (DefaultComboBoxModel) view.getTxtTombo().getModel();
combomodel.removeAllElements();
for(Equipamento equipamento : equipamentos)
{
combomodel.addElement(equipamento.TombotoString());
}
}
catch(SQLException ex)
{
JOptionPane.showMessageDialog(null);
}
}
public void atualizaComboSerie(String equip)
{
try
{
Connection conexao = new Conexao().Conectar();
EquipamentoDAO equipamentoDAO = new EquipamentoDAO(conexao);
ArrayList<Equipamento> equipamentos = equipamentoDAO.selecioneAllEquipamentoSerieStringEquip(equip);
DefaultComboBoxModel combomodel = (DefaultComboBoxModel) view.getTxtSerie().getModel();
combomodel.removeAllElements();
for(Equipamento equipamento : equipamentos)
{
combomodel.addElement(equipamento.SerietoString());
}
}
catch(SQLException ex)
{
JOptionPane.showMessageDialog(null);
}
}
//metodo para atualizar combobox serie
public void atualizaSerie()
{
try
{
Connection conexao = new Conexao().Conectar();
EquipamentoDAO equipamentoDAO = new EquipamentoDAO(conexao);
ArrayList<Equipamento> equipamentos = equipamentoDAO.selecioneAllEquipamentoSerie();
DefaultComboBoxModel combomodel = (DefaultComboBoxModel) view.getTxtSerie().getModel();
combomodel.removeAllElements();
for(Equipamento equipamento : equipamentos)
{
combomodel.addElement(equipamento.SerietoString());
}
}
catch(SQLException ex)
{
JOptionPane.showMessageDialog(null);
}
}
}
CadastroEmprestimoHelper.java:
package controller.helper;
public class CadastroEmprestimoHelper
{
private final TelaCadastroEmprestimo view;
public CadastroEmprestimoHelper(TelaCadastroEmprestimo view)
{
this.view = view;
}
public Emprestimo obterModeloSemID()
{
Unidade unidade = (Unidade) view.getTxtUnidade().getSelectedItem();
TipoEquipamento tipoequip = (TipoEquipamento) view.getTxtTipoEquip().getSelectedItem();
Equipamento equipamento = (Equipamento) view.getTxtEquipamento().getSelectedItem();
Unidade destino = (Unidade) view.getTxtDestino().getSelectedItem();
Nome nome = (Nome) view.getTxtNome().getSelectedItem();
Date dataSaida = (Date) view.getTxtDataSaida().getDate();
Date dataDevolucao = (Date) view.getTxtDataDevolucao().getDate();
String status = view.getTxtStatus().getSelectedItem().toString();
String tipo = view.getTxtTipo().getSelectedItem().toString();
String observacao = view.getTxtObservacao().getText();
String tombo = view.getTxtTombo().getSelectedItem().toString();
String serie = view.getTxtSerie().getSelectedItem().toString();
if(view.getTxtObservacao().getText() == null)
{
observacao = "NULL";
}
else
{
observacao = view.getTxtObservacao().getText();
}
Emprestimo emprestimo = new Emprestimo(unidade,tipoequip,equipamento,destino,nome,dataSaida,dataDevolucao,status,tipo,observacao,tombo,serie);
return emprestimo;
}
public Emprestimo obterModelo()
{
Integer id = Integer.parseInt(view.getTxtId().getText());
Unidade unidade = (Unidade) view.getTxtUnidade().getSelectedItem();
TipoEquipamento tipoequip = (TipoEquipamento) view.getTxtTipoEquip().getSelectedItem();
Equipamento equipamento = (Equipamento) view.getTxtEquipamento().getSelectedItem();
Unidade destino = (Unidade) view.getTxtDestino().getSelectedItem();
Nome nome = (Nome) view.getTxtNome().getSelectedItem();
Date dataSaida = (Date) view.getTxtDataSaida().getDate();
Date dataDevolucao = (Date) view.getTxtDataDevolucao().getDate();
String status = view.getTxtStatus().getSelectedItem().toString();
String tipo = view.getTxtTipo().getSelectedItem().toString();
String observacao = view.getTxtObservacao().getText();
String tombo = view.getTxtTombo().getSelectedItem().toString();
String serie = view.getTxtSerie().getSelectedItem().toString();
if(view.getTxtObservacao().getText() == null)
{
observacao = "NULL";
}
else
{
observacao = view.getTxtObservacao().getText();
}
Emprestimo emprestimo = new Emprestimo(id,unidade,tipoequip,equipamento,destino,nome,dataSaida,dataDevolucao,status,tipo,observacao,tombo,serie);
return emprestimo;
}
public void setModelo()
{
int setar = view.jTabelaCadEmprestimo.getSelectedRow();
view.txtId.setText(view.jTabelaCadEmprestimo.getModel().getValueAt(setar, 0).toString());
view.txtUnidade.setSelectedItem(view.jTabelaCadEmprestimo.getModel().getValueAt(setar, 1).toString());
view.txtTipoEquip.setSelectedItem(view.jTabelaCadEmprestimo.getModel().getValueAt(setar, 2).toString());
view.txtEquipamento.setSelectedItem(view.jTabelaCadEmprestimo.getModel().getValueAt(setar, 3).toString());
view.txtDestino.setSelectedItem(view.jTabelaCadEmprestimo.getModel().getValueAt(setar, 4).toString());
view.txtNome.setSelectedItem(view.jTabelaCadEmprestimo.getModel().getValueAt(setar, 5).toString());
try
{
Date data = new SimpleDateFormat("dd-MM-yyyy").parse((String)view.jTabelaCadEmprestimo.getModel().getValueAt(setar, 6));
view.txtDataSaida.setDate(data);
} catch (ParseException ex)
{
Logger.getLogger(CadastroEmprestimoHelper.class.getName()).log(Level.SEVERE, null, ex);
}
try
{
Date data = new SimpleDateFormat("dd-MM-yyyy").parse((String)view.jTabelaCadEmprestimo.getModel().getValueAt(setar, 7));
view.txtDataDevolucao.setDate(data);
} catch (ParseException ex)
{
Logger.getLogger(CadastroEmprestimoHelper.class.getName()).log(Level.SEVERE, null, ex);
}
view.txtStatus.setSelectedItem(view.jTabelaCadEmprestimo.getModel().getValueAt(setar, 8).toString());
view.txtTipo.setSelectedItem(view.jTabelaCadEmprestimo.getModel().getValueAt(setar, 9).toString());
if(view.jTabelaCadEmprestimo.getModel().getValueAt(setar, 10).toString() != null)
{
view.txtObservacao.setText(view.jTabelaCadEmprestimo.getModel().getValueAt(setar, 10).toString());
}
else
{
view.txtObservacao.setText("NULO");
}
view.txtTombo.setSelectedItem(view.jTabelaCadEmprestimo.getModel().getValueAt(setar, 11).toString());
view.txtSerie.setSelectedItem(view.jTabelaCadEmprestimo.getModel().getValueAt(setar, 12).toString());
}
public void limparTela()
{
view.getTxtObservacao().setText("");
view.getjTabelaCadEmprestimo().clearSelection();
}
public void bloquearCampos()
{
view.getTxtUnidade().setEnabled(false);
view.getTxtTipoEquip().setEnabled(false);
view.getTxtEquipamento().setEnabled(false);
view.getTxtDestino().setEnabled(false);
view.getTxtNome().setEnabled(false);
view.getTxtDataSaida().setEnabled(false);
view.getTxtDataDevolucao().setEnabled(false);
view.getTxtStatus().setEnabled(false);
view.getTxtObservacao().setEnabled(false);
view.getTxtTombo().setEnabled(false);
view.getTxtSerie().setEnabled(false);
view.btnEditar.setEnabled(false);
view.btnEmprestar.setEnabled(false);
view.btnExcluir.setEnabled(true);
view.btnPesquisar.setEnabled(false);
}
public void desbloquearCampos()
{
view.getTxtUnidade().setEnabled(true);
view.getTxtTipoEquip().setEnabled(true);
view.getTxtEquipamento().setEnabled(true);
view.getTxtDestino().setEnabled(true);
view.getTxtNome().setEnabled(true);
view.getTxtDataSaida().setEnabled(true);
view.getTxtDataDevolucao().setEnabled(true);
view.getTxtStatus().setEnabled(true);
view.getTxtObservacao().setEnabled(true);
view.getTxtTombo().setEnabled(true);
view.getTxtSerie().setEnabled(true);
view.btnEditar.setEnabled(true);
view.btnEmprestar.setEnabled(true);
view.btnExcluir.setEnabled(true);
view.btnPesquisar.setEnabled(true);
}
}