Filtrar relatorio por data no ireport 2.0.4

ola gente esta é a classe que gera o relatorio gostaria de fazer a filtragem por data no ireport 2.0.4 alguem pode me ajudar ??

[code]import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
import java.util.HashMap;

import net.sf.jasperreports.engine.JRException;
import net.sf.jasperreports.engine.JasperFillManager;
import net.sf.jasperreports.engine.JasperPrint;

public class RelatorioProduto
{
Connection con;

public JasperPrint gerarRelatorioProduto() 
throws Exception
{ JasperPrint rel=null;

String url = "jdbc:postgresql://localhost:5432/TurmaN40";
try { 
	Class.forName("org.postgresql.Driver");
} catch(java.lang.ClassNotFoundException e1) { 
    System.err.print("ClassNotFoundException: "); 
    System.err.println(e1.getMessage()); 
} 
try { 
    con = DriverManager.getConnection(url,"postgres", "postgres"); 
} catch(SQLException ex) { 
    System.err.print("SQLException: "); 
    System.err.println(ex.getMessage()); 

}

try	{ // Connection con = Conexao.criaConexao(); 
HashMap map= new HashMap(); 
String arquivoJasper= "C:\\vidracaria\\RelatoriodeProduto.jasper"; 
rel=JasperFillManager.fillReport(arquivoJasper,map,con);
con.close();
}
catch (JRException e)
{ e.printStackTrace(); 
} 
return rel; 
}

[/code]

esta janela abaixo é o filtro do relatorio alguem me da uma luz? obrigado.

[code]import java.awt.;
import java.awt.event.
;
import java.text.SimpleDateFormat;
import java.util.Date;

import javax.persistence.EntityManager;
import javax.persistence.EntityManagerFactory;
import javax.persistence.Persistence;
import javax.swing.*;

import Modelo.Cliente;
import Modelo.Compra;
import Modelo.Conta;

import net.sf.jasperreports.engine.JasperPrint;
import net.sf.jasperreports.view.JasperViewer;

//import controle.Utilitarios;

// Ctrl+Shift+F => Formata o código
// Ctrl+A e Ctrl+i => Formata a seleção

public class FiltroCliente extends JFrame {
private JLabel rotulo1;
private JTextField caixa1;
private JButton botao1;

private static EntityManagerFactory fabricaDeEntidades = null;

private static EntityManager gerenciador = null;
Cliente objetoCliente;
ImageIcon icone;
public FiltroCliente(EntityManagerFactory fabricaDeEntidades2, EntityManager gerenciador2) {
	super("Relatório Cliente");
	Container tela = getContentPane();
	icone = new ImageIcon("100.gif");
	botao1 = new JButton (icone);
	tela.setLayout(null);
	fabricaDeEntidades=fabricaDeEntidades2;
	gerenciador=gerenciador2;

	rotulo1 = new JLabel("Data:");

	caixa1 = new JTextField();
	
	//botao1 = new JButton("Gerar Relatório");


	// coluna, linha, largura, altura
	rotulo1.setBounds(24, 19, 56, 20);
	caixa1.setBounds(75, 19, 100, 20);

	botao1.setBounds(54, 60, 100, 20);
	

	//rotulo2.setBounds(24, 50, 100, 20);
	//caixa2.setBounds(75, 50, 100, 20);

	

	tela.add(rotulo1);
	tela.add(caixa1);

	//tela.add(rotulo2);
	//tela.add(caixa2);

	tela.add(botao1);


	botao1.addActionListener(new ActionListener() {
		
		public void actionPerformed(ActionEvent e) {
			RelatorioCliente rep = new RelatorioCliente(); 
			objetoCliente = 
				(Cliente) gerenciador.createQuery(  
                "from Cliente pr WHERE pr.NomeCompleto = :NomeCompleto").setParameter("NomeCompleto", caixa1.getText()).getSingleResult(); 
			JasperPrint relat;
			try {
				relat = rep.gerarRelatorioCliente();
				JasperViewer.viewReport(relat, false);
			} catch (Exception e1) {
				e1.printStackTrace();
			}

//
}
});

	// setSize(largura, altura);
	setSize(250, 150);
	setVisible(true);
	setLocationRelativeTo(null);
}

public static void main(String[] args) {

	fabricaDeEntidades = Persistence
			.createEntityManagerFactory("TurmaN40PostgreSQL");

	gerenciador = fabricaDeEntidades.createEntityManager();

	FiltroCliente app = new FiltroCliente(fabricaDeEntidades, gerenciador);
	app.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

}

}
[/code]