JavaFX 8: ¿como agregar un retraso de tiempo a un oyente?

Estoy trabajando en una aplicación JavaFX 8 en este momento, donde tengo un TableView y algunos campos de texto anteriores que permiten buscar / filtrar ciertas columnas en el TableView. He agregado un oyente a textFields, para activar el filtrado automáticamente cuando se detecta un cambio. Usé el siguiente código para hacer esto.

textField_filterAddress.textProperty().addListener((observable, oldValue, newValue) -> {
            doSomething(); // in this case, filter table data and refresh tableView afterwards
        });

Mi pregunta ahora es: ¿cuál es la forma más fácil de integrar algún tipo de retraso de tiempo, antes de que se active el filtrado? Me gustaría esperar unos milisegundos, porque cada vez que el usuario está filtrando está ejecutando una nueva consulta de base de datos y no creo que sea necesario para cada carácter que el usuario ingrese. Prefiero esperar hasta que él / ella terminó su entrada. ¿Hay algún tipo de característica como esta ya integrada en todo el tema del oyente? ¿O tengo que implementar mi propia solución? ¿Si es así, cómo? Pensé en algún tipo de solución de concurrencia,para que el resto del software no se congele durante el período de espera. Pero pensé en preguntar aquí si hay una solución más fácil antes de pensar demasiado en mi propio camino ...

Muchas gracias de antemano!

Respuestas a la pregunta(2)

Su respuesta a la pregunta