Galera, to cum problema e num to conseguindo detectar onde que ele se encontra. Vou coloca os códigos e o erro:
ERRO: Exception in thread “AWT-EventQueue-0” java.lang.ClassCastException: sistemaproduto.modelo.dominio.constante.UnidadeVenda cannot be cast to java.lang.String
at sistemaproduto.interfacegrafica.TelaDadosProduto.getProduto(TelaDadosProduto.java:37)
at sistemaproduto.interfacegrafica.OuvinteDeTelaDadosProduto$OuvinteGravarProduto.actionPerformed(OuvinteDeTelaDadosProduto.java:24)
at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:1995)
at javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2318)
at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:387)
at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:242)
at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(BasicButtonListener.java:236)
at java.awt.Component.processMouseEvent(Component.java:6263)
at javax.swing.JComponent.processMouseEvent(JComponent.java:3267)
at java.awt.Component.processEvent(Component.java:6028)
at java.awt.Container.processEvent(Container.java:2041)
at java.awt.Component.dispatchEventImpl(Component.java:4630)
at java.awt.Container.dispatchEventImpl(Container.java:2099)
at java.awt.Component.dispatchEvent(Component.java:4460)
at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4574)
at java.awt.LightweightDispatcher.processMouseEvent(Container.java:4238)
at java.awt.LightweightDispatcher.dispatchEvent(Container.java:4168)
at java.awt.Container.dispatchEventImpl(Container.java:2085)
at java.awt.Window.dispatchEventImpl(Window.java:2478)
at java.awt.Component.dispatchEvent(Component.java:4460)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:599)
at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:269)
at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:184)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:174)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:169)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:161)
at java.awt.EventDispatchThread.run(EventDispatchThread.java:122)
CÓDIGO
[code]//…
public Produto getProduto() throws ClasseDeExcecao {
String nome = tfNome.getText();
if (nome == null || nome.trim().equals("")) {
tfNome.requestFocus();
throw new ClasseDeExcecao(“Não foi informado o nome do produto.”);
} else {
produto.setNome(nome);
}
produto.setQuantidade(Integer.parseInt(this.tfQuantidade.getText()));
String unidadeVenda = (String) cbUnidadeVenda.getSelectedItem();
if (unidadeVenda.trim().equals("")) {
throw new ClasseDeExcecao("Não foi informada a unidade de venda do produto.");
} else {
produto.setUnidadeVenda(unidadeVenda);
}
…[/code]
Classe VO
[code] //…
private String UnidadeVenda;
public String getUnidadeVenda() {
return UnidadeVenda;
}
public void setUnidadeVenda(String UnidadeVenda) throws ClasseDeExcecao {
if(UnidadeVenda==null || UnidadeVenda.length()==0){
throw new ClasseDeExcecao("Unidade de venda não informada");
}
this.UnidadeVenda = UnidadeVenda;
}
//…[/code]
Select
[code]//…
private static final String SQL_INCLUIR =
"INSERT INTO produto (codigoproduto, nome, quantidade, unidadeVenda, valorUnitario, valorTotal, dataCompra) "
+ “VALUES (?, ?, ?, ?, ?, ?, ?)”;
private static final String SQL_ALTERAR =
“UPDATE produto SET nome = ?, quantidade = ?, unidadeVenda = ?, valorUnitario = ?, valorTotal = ?, dataCompra = ? WHERE codigoproduto = ?”;
//…[/code]
criar, insere, altera e grava
[code]//…
private Produto criarProduto(ResultSet rs) throws ClasseDeExcecao {
Produto produto = new Produto();
try {
produto.setCodigo(rs.getLong(“codigoproduto”));
produto.setNome(rs.getString(“nome”));
produto.setQuantidade(rs.getInt(“quantidade”));
produto.setUnidadeVenda(rs.getString(“unidadeVenda”));
produto.setValorUnitario(rs.getDouble(“valorUnitario”));
produto.setValorTotal(rs.getDouble(“valorTotal”));
produto.setDataCompra(rs.getDate(“dataCompra”));
} catch (SQLException exc) {
StringBuffer mensagem = new StringBuffer(“Não foi possível obter os dados do produto.”
+ " Por favor, entre em contato com o administrador do sistema.");
mensagem.append("\nMotivo: ").append(exc.getMessage());
throw new ClasseDeExcecao(mensagem.toString());
}
return produto;
}
private void incluirProduto(Produto produto) throws ClasseDeExcecao, SQLException {
if (produto == null) {
String mensagem = "Não foi informado o produto a ser cadastrado.";
throw new ClasseDeExcecao(mensagem);
}
Connection con = null;
PreparedStatement stmt = null;
try {
con = GerenciadorDeConexao.getConexao();
stmt = (PreparedStatement) con.prepareStatement(SQL_INCLUIR);
GeradorDeChave geradorDeChave = new GeradorDeChave("produto");
long codigoproduto = geradorDeChave.getProximoCodigo();
stmt.setLong(1, codigoproduto);
stmt.setString(2, produto.getNome());
stmt.setInt(3, produto.getQuantidade());
stmt.setString(4, produto.getUnidadeVenda());
stmt.setDouble(5, produto.getValorUnitario());
stmt.setDouble(6, produto.getValorTotal());
java.util.Date datacompra = produto.getDataCompra();
stmt.setDate(7, new java.sql.Date(datacompra.getTime()));
stmt.executeUpdate();
} catch (SQLException exc) {
StringBuffer msg = new StringBuffer("Não foi possível incluir o produto. "
+ "Por favor, tente novamente.\n\n\n Se o erro persistir, contate"
+ " o administrador do sistema.");
msg.append("\nMotivo do erro: ").append(exc.getMessage());
throw new ClasseDeExcecao(msg.toString());
} finally {
GerenciadorDeConexao.closeConexao(con, stmt);
}
}
private void alterarProduto(Produto produto) throws ClasseDeExcecao {
if (produto == null) {
String mensagem = "Não foi informado o produto a ser alterado.";
throw new ClasseDeExcecao(mensagem);
}
Connection con = null;
PreparedStatement stmt = null;
try {
con = GerenciadorDeConexao.getConexao();
stmt = (PreparedStatement) con.prepareStatement(SQL_ALTERAR);
stmt.setString(1, produto.getNome());
stmt.setInt(2, produto.getQuantidade());
stmt.setString(4, produto.getUnidadeVenda());
stmt.setDouble(5, produto.getValorUnitario());
stmt.setDouble(6, produto.getValorTotal());
java.util.Date datacompra = produto.getDataCompra();
stmt.setDate(7, new java.sql.Date(datacompra.getTime()));
stmt.setLong(8, produto.getCodigo());
stmt.executeUpdate();
} catch (SQLException exc) {
StringBuffer msg = new StringBuffer("Não foi possível atualizar os dados do produto. "
+ "Por favor, tente novamente.\n\n\n Se o erro persistir, contate o administrador do sistema.");
msg.append("\nMotivo do erro: ").append(exc.getMessage());
throw new ClasseDeExcecao(msg.toString());
} finally {
GerenciadorDeConexao.closeConexao(con, stmt);
}
}
public void gravarProduto(Produto produto) throws ClasseDeExcecao {
if (produto.getCodigo() == ConstanteProduto.NOVO) {
try {
incluirProduto(produto);
} catch (SQLException ex) {
Logger.getLogger(GatewayProduto.class.getName()).log(Level.SEVERE, null, ex);
}
} else {
alterarProduto(produto);
}
}[/code]