Jcalendar java.util.Date cannot be cast to java.sql.Date

Não estou conseguindo salvar a data do Jcalendar no banco de dados, alguem poderia me ajudar?
// se o erro for simples me desculpem, sou aprendiz ainda em Java.

Código que executa quando clica no botão salvar (VIEW):

 public void cadastro(){
        
             try {
                  Variavel c1 = new Variavel();
c1.setNome(jTnome.getText());
c1.setNascimento( (java.sql.Date) jTnascimento.getDate()); // o erro e nessa linha
c1.setSexo(jCsexo.getSelectedItem().toString());   
c1.setCPF(jTcpf.getText());

 cadastroDao dao = new cadastroDao();
            dao.adiciona(c1);
        } catch (SQLException ex) {
            Logger.getLogger(GerenciarClientes.class.getName()).log(Level.SEVERE, null, ex);
        }
        }

A parte que ele manda pro banco de Dados(model):

[code]public void adiciona(Variavel c1) throws SQLException{
String sql = “insert into cliente (nome,Nascimento,Sexo,”
+ “CPF)”
+ " values (?,?,?,?);";

       PreparedStatement stmt = conexao.prepareStatement(sql); 
        stmt.setString(1, c1.getNome());
        stmt.setDate(2,new java.sql.Date(c1.getNascimento().getTime()));   
          stmt.setString(3, c1.getSexo());
            stmt.setString(4, c1.getCPF());

     stmt.execute();
     stmt.close();
   }

[/code]
Erro:

Exception in thread "AWT-EventQueue-0" java.lang.ClassCastException: java.util.Date cannot be cast to java.sql.Date at View.GerenciarClientes.cadastro(GerenciarClientes.java:649)

linha do erro(GerenciarClientes.java:649):

c1.setNascimento( (java.sql.Date) jTnascimento.getDate());

a variavel de controle (control);

[code]public class Variavel {

 private int matricula;
private String nome;
private Date nascimento;
private String sexo;
private String CPF;

// com construtor vazio e um inteiro
// e com get e set
[/code]

banco de dados:

CREATE  TABLE IF NOT EXISTS `Academia`.`cliente` (
 `matricula` INT NOT NULL AUTO_INCREMENT ,
  `nome` VARCHAR(45),
  `Nascimento` Date,
  `Sexo` VARCHAR(10),
  `CPF` VARCHAR(14),
  PRIMARY KEY (`matricula`) 

)

ENGINE = InnoDB

Desculpe qualquer coisa, é que meu professor nao ensinou a trabalhar com datas e eu estou tentando fazer um programa com aquele Jcalendar.
o codigo é bem maior, mas tirei algumas coisas pra nao ficar gigante.

Qual banco de dados você está utilizando?

MySql / usando o programa Wampserver

Isso aqui resolve seu problema.

c1.setNascimento(new java.sql.Date(jTnascimento.getDate().getTime)); // o erro e nessa linha  

Mas tenho outra dica para voce!

Até mais…

Criar um objeto passando o java.util.date como long que são os milissegundos resolve.

Mas por que não usar TIMESTAMP no seu banco de dados? Assim você pode sempre usar java.util.date.

Quando trabalhava com swing eu usava o nachocalendar.jar. tem um exemplo dele em um sistema que fiz a um tempo http://tidanilocarvalho.wordpress.com/2013/05/30/projeto-para-gerenciar-entregar-manager-deliveries/

Deu certo?

Até mais…

[quote=Danilo Carvalho]Isso aqui resolve seu problema.

c1.setNascimento(new java.sql.Date(jTnascimento.getDate().getTime)); // o erro e nessa linha  

Mas tenho outra dica para voce!

Até mais…[/quote]

valeu cara, muito obrigado mesmo!
funcionou perfeitamente, só que vc esqueceu de por () no getTime XD

c1.setNascimento(new java.sql.Date(jTnascimento.getDate().getTime()));

Opa, legal, é que digitei aqui no fórum mesmo e dei um (ctrl+space) e não completou! ahahaha!

Precisando só postar a dúvida ai.

Até mais…

Aproveitando o topico então…
sabe me dizer como faço pra calcular um valor de cada Checkbox?
por exemplo:

ao selecionar o checkbox, a mensalidade vai ser aumentada conforme o valor que estiver em modalidades.
eu ja tentei fazer mas ta dificil.
eu vou ter que pegar um valor do BD e agregar a uma variavel que vai aumentando conforme for selecionando as checkbox
mas ainda nao consegui fazer o codigo ‘-’
se tiver como ajudar…
terei que usar um IF pra cada caixinha certo?