Ajuda Java Desktop + Excluir item da combo box

Java

01/06/2014

Boa tarde galera, estou com problemas no meu programa aqui.

eu tenho banco de dados com todos os funcionarios cadastrados no programa, ai o nome deles vão para uma combo box, eu quero excluir o funcionario do banco de dados pela combo box, selecionando ele e excluindo.
Na hora de excluir da o seguinte erro:

Exception in thread "AWT-EventQueue-0" java.lang.ClassCastException: java.lang.String cannot be cast to worldCup.Funcionario
at telas.TelaGerenciarFuncionario$4.actionPerformed(TelaGerenciarFuncionario.java:108)
at javax.swing.AbstractButton.fireActionPerformed(Unknown Source)
at javax.swing.AbstractButton$Handler.actionPerformed(Unknown Source)
at javax.swing.DefaultButtonModel.fireActionPerformed(Unknown Source)
at javax.swing.DefaultButtonModel.setPressed(Unknown Source)
at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(Unknown Source)
at java.awt.Component.processMouseEvent(Unknown Source)
at javax.swing.JComponent.processMouseEvent(Unknown Source)
at java.awt.Component.processEvent(Unknown Source)
at java.awt.Container.processEvent(Unknown Source)
at java.awt.Component.dispatchEventImpl(Unknown Source)
at java.awt.Container.dispatchEventImpl(Unknown Source)
at java.awt.Component.dispatchEvent(Unknown Source)
at java.awt.LightweightDispatcher.retargetMouseEvent(Unknown Source)
at java.awt.LightweightDispatcher.processMouseEvent(Unknown Source)
at java.awt.LightweightDispatcher.dispatchEvent(Unknown Source)
at java.awt.Container.dispatchEventImpl(Unknown Source)
at java.awt.Window.dispatchEventImpl(Unknown Source)
at java.awt.Component.dispatchEvent(Unknown Source)
at java.awt.EventQueue.dispatchEventImpl(Unknown Source)
at java.awt.EventQueue.access$200(Unknown Source)
at java.awt.EventQueue$3.run(Unknown Source)
at java.awt.EventQueue$3.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.ProtectionDomain$1.doIntersectionPrivilege(Unknown Source)
at java.security.ProtectionDomain$1.doIntersectionPrivilege(Unknown Source)
at java.awt.EventQueue$4.run(Unknown Source)
at java.awt.EventQueue$4.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.ProtectionDomain$1.doIntersectionPrivilege(Unknown Source)
at java.awt.EventQueue.dispatchEvent(Unknown Source)
at java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source)
at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source)
at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
at java.awt.EventDispatchThread.run(Unknown Source)
Exception in thread "AWT-EventQueue-0" java.lang.ClassCastException: java.lang.String cannot be cast to worldCup.Funcionario
at telas.TelaGerenciarFuncionario$4.actionPerformed(TelaGerenciarFuncionario.java:108)
at javax.swing.AbstractButton.fireActionPerformed(Unknown Source)
at javax.swing.AbstractButton$Handler.actionPerformed(Unknown Source)
at javax.swing.DefaultButtonModel.fireActionPerformed(Unknown Source)
at javax.swing.DefaultButtonModel.setPressed(Unknown Source)
at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(Unknown Source)
at java.awt.Component.processMouseEvent(Unknown Source)
at javax.swing.JComponent.processMouseEvent(Unknown Source)
at java.awt.Component.processEvent(Unknown Source)
at java.awt.Container.processEvent(Unknown Source)
at java.awt.Component.dispatchEventImpl(Unknown Source)
at java.awt.Container.dispatchEventImpl(Unknown Source)
at java.awt.Component.dispatchEvent(Unknown Source)
at java.awt.LightweightDispatcher.retargetMouseEvent(Unknown Source)
at java.awt.LightweightDispatcher.processMouseEvent(Unknown Source)
at java.awt.LightweightDispatcher.dispatchEvent(Unknown Source)
at java.awt.Container.dispatchEventImpl(Unknown Source)
at java.awt.Window.dispatchEventImpl(Unknown Source)
at java.awt.Component.dispatchEvent(Unknown Source)
at java.awt.EventQueue.dispatchEventImpl(Unknown Source)
at java.awt.EventQueue.access$200(Unknown Source)
at java.awt.EventQueue$3.run(Unknown Source)
at java.awt.EventQueue$3.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.ProtectionDomain$1.doIntersectionPrivilege(Unknown Source)
at java.security.ProtectionDomain$1.doIntersectionPrivilege(Unknown Source)
at java.awt.EventQueue$4.run(Unknown Source)
at java.awt.EventQueue$4.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.ProtectionDomain$1.doIntersectionPrivilege(Unknown Source)
at java.awt.EventQueue.dispatchEvent(Unknown Source)
at java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source)
at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source)
at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
at java.awt.EventDispatchThread.run(Unknown Source)


Vou enviar o codigo

FuncionarioDAO:

package dados;

import dados.ConnectionFactory;
import worldCup.Funcionario;
import java.sql.*;
import java.util.ArrayList;
import java.util.List;

public class FuncionarioDAO {
    private Connection connection;
    private PreparedStatement stmt;
    int id;
    String nome;
    String cpf;
    String telefone;
    String senha;

    public FuncionarioDAO(){
       this.connection = new ConnectionFactory().getConnection();
    }

    public void cadastrarFuncionario(Funcionario funcionario){

        String sql = "INSERT INTO funcionario(nome,cpf,telefone,senha) VALUES(?,?,?,?)";
        try {

           PreparedStatement stmt = connection.prepareStatement(sql);
           stmt.setString(1, funcionario.getNome());
           stmt.setString(2, funcionario.getCpf());
           stmt.setString(3, funcionario.getTelefone());
           stmt.setString(4, funcionario.getSenha());
           stmt.execute();
           stmt.close();

        } catch (SQLException u) {
            throw new RuntimeException(u);
        }
    }
    public void deletarFuncionario(Funcionario funcionario){
    	
    	String sql = "DELETE FROM funcionario WHERE idFuncionario = ?";
    	try{
    		PreparedStatement stmt = connection.prepareStatement(sql);
            stmt.setInt(1, funcionario.getIdFuncionario());
            stmt.execute();
            stmt.close();

        } catch (SQLException u) {
            throw new RuntimeException(u);
        }
    }
    public ArrayList<Funcionario> listarFuncionario(){
    	
    	   ArrayList<Funcionario> funcionarios = new ArrayList<>();
    	   
    	   String sql = "SELECT * FROM funcionario ORDER BY nome ASC";
    	   try{
    		   stmt = connection.prepareStatement(sql);
   			
    		   ResultSet rs = stmt.executeQuery();
   			
    	   while(rs.next()){
    		  Funcionario funcionario = new Funcionario();
    		  funcionario.setIdFuncionario(rs.getInt("idFuncionario"));
    		  funcionario.setNome(rs.getString("nome"));
    		  funcionario.setCpf(rs.getString("cpf"));
    		  funcionario.setTelefone(rs.getString("telefone"));
    		  funcionario.setSenha(rs.getString("senha"));
    		  
    		  funcionarios.add(funcionario);
    	   }
    	   rs.close();
    	   stmt.close();
    	   return funcionarios;
    	
    	   }
		catch (SQLException u) {
		throw new RuntimeException(u);
		}
    }
 }


TelaGerenciarFuncionario

package telas;

import java.awt.BorderLayout;
import java.awt.EventQueue;

import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.border.EmptyBorder;
import javax.swing.JLabel;
import java.awt.Font;
import javax.swing.SwingConstants;
import javax.swing.JButton;
import javax.swing.JComboBox;

import worldCup.Funcionario;

import java.awt.Color;
import java.awt.event.ActionListener;
import java.awt.event.ActionEvent;
import java.sql.ResultSet;
import java.util.ArrayList;
import java.util.List;

import javax.swing.DefaultComboBoxModel;

import dados.FuncionarioDAO;

public class TelaGerenciarFuncionario extends JFrame {

	private JPanel menuGerenciarFuncionario;
	private JButton btnCadastrarFuncionrio;
	private JButton btnEditar;
	private JButton btnMenuPrincipal;
	
	public TelaCadastroFuncionario telaCadastroFuncionario = new TelaCadastroFuncionario();
	public static FuncionarioDAO dadosFuncionario = new FuncionarioDAO();
	private static ArrayList<Funcionario> func = new ArrayList<>();
	private Funcionario funcionario = new Funcionario();
	private static JComboBox cbbFuncionario;

	/**
	 * Launch the application.
	 */
	public static void main(String[] args) {
		
		EventQueue.invokeLater(new Runnable() {
			public void run() {
				try {
					
					TelaGerenciarFuncionario frame = new TelaGerenciarFuncionario();
					frame.setVisible(true);
					AtualizaCbb();
					
				} catch (Exception e) {
					e.printStackTrace();
				}
			}
		});
	}
	
	
	/**
	 * Create the frame.
	 */
	public TelaGerenciarFuncionario() {
		setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		setBounds(100, 100, 661, 519);
		menuGerenciarFuncionario = new JPanel();
		menuGerenciarFuncionario.setBorder(new EmptyBorder(5, 5, 5, 5));
		setContentPane(menuGerenciarFuncionario);
		menuGerenciarFuncionario.setLayout(null);
		
		JLabel lblGerenciamentoDeFuncionario = new JLabel("Gerenciamento de Funcion\u00E1rios");
		lblGerenciamentoDeFuncionario.setHorizontalAlignment(SwingConstants.CENTER);
		lblGerenciamentoDeFuncionario.setFont(new Font("Tahoma", Font.BOLD, 24));
		lblGerenciamentoDeFuncionario.setBounds(10, 64, 625, 37);
		menuGerenciarFuncionario.add(lblGerenciamentoDeFuncionario);
		
		btnCadastrarFuncionrio = new JButton("Cadastrar Funcion\u00E1rio");
		btnCadastrarFuncionrio.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent arg0) {
				telaCadastroFuncionario.setVisible(true);
				
			}
		});
		btnCadastrarFuncionrio.setFont(new Font("Tahoma", Font.BOLD, 11));
		btnCadastrarFuncionrio.setBounds(188, 201, 263, 23);
		menuGerenciarFuncionario.add(btnCadastrarFuncionrio);
		
		cbbFuncionario = new JComboBox();
		cbbFuncionario.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent e) {
			
			}
		});
		
		cbbFuncionario.setBounds(188, 273, 263, 20);
		menuGerenciarFuncionario.add(cbbFuncionario);
		
		btnEditar = new JButton("Editar");
		btnEditar.setFont(new Font("Tahoma", Font.BOLD, 11));
		btnEditar.setBounds(188, 320, 125, 23);
		menuGerenciarFuncionario.add(btnEditar);
		
		JButton btnExcluir = new JButton("Excluir");
		btnExcluir.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent arg0) {
				funcionario = (Funcionario) cbbFuncionario.getSelectedItem();
				dadosFuncionario.deletarFuncionario(funcionario);
			}
		});
		btnExcluir.setFont(new Font("Tahoma", Font.BOLD, 11));
		btnExcluir.setBounds(323, 320, 128, 23);
		menuGerenciarFuncionario.add(btnExcluir);
		
		JLabel lblSelecioneOFuncionrio = new JLabel("*Selecione o Funcion\u00E1rio na Combo Box");
		lblSelecioneOFuncionrio.setFont(new Font("Tahoma", Font.ITALIC, 11));
		lblSelecioneOFuncionrio.setForeground(Color.GRAY);
		lblSelecioneOFuncionrio.setBounds(188, 295, 263, 14);
		menuGerenciarFuncionario.add(lblSelecioneOFuncionrio);
		
		JLabel lblSoftWorldCup = new JLabel("Soft World Cup");
		lblSoftWorldCup.setFont(new Font("Tahoma", Font.ITALIC, 11));
		lblSoftWorldCup.setBounds(549, 456, 86, 14);
		menuGerenciarFuncionario.add(lblSoftWorldCup);
		
		btnMenuPrincipal = new JButton("Menu Principal");
		btnMenuPrincipal.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent arg0) {
				TelaMenuAdm telaMenuAdm = new TelaMenuAdm();
				telaMenuAdm.setVisible(true);
				dispose();
			}
		});
		btnMenuPrincipal.setFont(new Font("Tahoma", Font.BOLD, 11));
		btnMenuPrincipal.setBounds(248, 375, 136, 23);
		menuGerenciarFuncionario.add(btnMenuPrincipal);
	}
	  protected static void AtualizaCbb(){
	       func = dadosFuncionario.listarFuncionario();
	       cbbFuncionario.removeAllItems();
	       for (int i = 0;i < func.size(); i++){
	           cbbFuncionario.addItem(func.get(i).getNome());

	       }
	  }
}


Classe Funcionario

package worldCup;
//criando a classe Funcionario
public class Funcionario {
	//criando as variaveis
	protected int idFuncionario;
	protected String cpf;
	protected String nome;
	protected String telefone;
	protected String senha;
	
	//criando os get`s e os set`s
	public int getIdFuncionario() {
		return idFuncionario;
	}
	public void setIdFuncionario(int idFuncionario) {
		this.idFuncionario = idFuncionario;
	}
	public String getCpf() {
		return cpf;
	}
	public void setCpf(String cpf) {
		this.cpf = cpf;
	}
	public String getNome() {
		return nome;
	}
	public void setNome(String nome) {
		this.nome = nome;
	}
	public String getTelefone() {
		return telefone;
	}
	public void setTelefone(String telefone) {
		this.telefone = telefone;
	}
	public String getSenha() {
		return senha;
	}
	public void setSenha(String senha) {
		this.senha = senha;
	}
	
	//chamando o construtor
	public Funcionario() {
		super();
	}
	public Funcionario(String nome) {
		this.nome = nome;
	}
	public String toString() {
		return nome;
	}
}	


Se puderem me ajudar agradeço
Sr Sherlock

Sr Sherlock

Curtidas 0
POSTAR