Estoy pensando que una posible solución podría ser preparar una consulta dinámica con el operador like y comodines de la siguiente manera:
Cita: mysql> select * from clientes where nombre like'%a%' and apellidos like"%%" and cod_post
al like"%06800%";
Es un ejemplo, de manera que si no rellenas nada en el campo apellidos por ejemplo, esa condición queda vacía. He probado la consulta y funciona aunque no creo que sea una forma muy optimizada de hacer una busqueda.
De esta manera tendría que hacer una variable por cada campo, e ir cargando en la select para despues obtener los id y meterlo todo en un jtable