Сейчас я работаю над приложением JavaFX 8, где у меня есть tableView и некоторые текстовые поля выше, которые позволяют искать/фильтровать определенные столбцы в tableView. Я добавил прослушиватель к textFields, чтобы автоматически запускать фильтрацию при обнаружении изменения. Я использовал код ниже, чтобы сделать это.
textField_filterAddress.textProperty().addListener((observable, oldValue, newValue) -> {
doSomething(); // in this case, filter table data and refresh tableView afterwards
});
Теперь мой вопрос: какой самый простой способ интегрировать какую-то временную задержку, прежде чем фильтрация сработает? Я хотел бы подождать несколько миллисекунд, потому что каждый раз, когда пользователь фильтрует, он выполняет новый запрос к базе данных, и я не думаю, что это необходимо для каждого символа, который вводит пользователь. Я лучше подожду, пока он/она закончил свой ввод. Есть ли какая-то функция, подобная этой, уже встроенная во весь слушатель? Или мне нужно реализовать собственное решение? Если да, то как? Я подумал о каком-то решении для параллелизма, чтобы остальная часть программного обеспечения не зависала в течение периода ожидания. Но я подумал, что спрошу здесь, есть ли более простое решение, прежде чем слишком много думать о своем собственном пути...
Заранее большое спасибо!
FilteredList
. - person Itai   schedule 14.01.2016