JavaFX 8: como adicionar um intervalo de tempo a um ouvinte?

Estou trabalhando em um aplicativo JavaFX 8 no momento, onde tenho um tableView e alguns textFields acima, que permitem pesquisar / filtrar determinadas colunas no tableView. Eu adicionei um ouvinte aos campos de texto, para acionar a filtragem automaticamente quando uma alteração é detectada. Eu usei o código abaixo para fazer isso.

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

Minha pergunta agora é: qual é a maneira mais fácil de integrar algum tipo de atraso, antes que a filtragem seja acionada? Eu gostaria de esperar alguns milissegundos, porque toda vez que o usuário está filtrando, ele está executando uma nova consulta ao banco de dados e não acho que isso seja necessário para cada caractere inserido pelo usuário. Prefiro esperar até que ele / ela terminou sua entrada. Existe algum tipo de recurso como esse já incorporado à coisa do ouvinte? Ou tenho que implementar minha própria solução? Se sim, como? Pensei em algum tipo de solução de concorrência,para que o restante do software não congele durante o período de espera. Mas pensei em perguntar aqui se existe uma solução mais fácil antes de pensar muito no meu próprio caminho ...

Muito obrigado antecipadamente!

questionAnswers(2)

yourAnswerToTheQuestion