Выбор таблички, затем фильтрация таблицы делает выбранную таблету для запроса фокусировки, в результате чего текстовое поле фильтра потеряет его. < /p>
tableView.setRowFactory(tv -> new TableRow() {
@Override
protected void updateItem(T item, boolean empty) {
focusedProperty().addListener((a, b, c) -> {
if (c)
System.out.println("");
});
}
});
protected final ObjectProperty
> textFilter = new SimpleObjectProperty(item -> true);
public final FilteredList filteredItems;
protected FilterBase(ObservableList findAllObservableList, MFXTextField textBox_filter) {
filteredItems = new FilteredList(findAllObservableList);
textBox_filter.textProperty().addListener((obs, oldVal, newVal) -> {
String lower = newVal.toLowerCase();
textFilter.set(item -> StringUtils.isBlank(lower) || item.name().toLowerCase().contains(lower));
});
}
< /code>
Как предотвратить запрос фокусировки таблеток во время фильтрации? Я хотел бы отфильтровать TableView, пока все еще выбранные строки (не делая мое текстовое поле для свободного фокуса).
edit : Стаут существует только для целей отладки. Помещение точки останова, а затем выходить на виновник. Это поведение таблицы по умолчанию для запроса фокусировки, когда TableView ObservableList изменяется (понятия не имеет, как это имеет смысл)
Подробнее здесь: https://stackoverflow.com/questions/797 ... -filtering