Я создаю средство чтения журналов с JavaFX в качестве побочного проекта и зашел в тупик, пытаясь реализовать фильтрацию на TableView
.
У меня есть несколько CheckBox
(слева на картинке), которые в основном будут действовать как фильтры для того, что будет отображать TableView
:
После нажатия кнопки Submit
открывается фоновый поток для чтения и анализа файлов. После завершения операции результат каждого чтения журнала вставляется в глобальную переменную ObservableList<Log>
:
public class Test_Filters extends Application {...
private ObservableList<LogTest> logs = FXCollections.observableArrayList();
...}
У меня проблемы с тем, как справиться с:
- Ситуация, когда проверяется более одного фильтра
CheckBox
. - Ситуация, когда
CheckBox
не отмечен.
Для 1. Мне было интересно, как лучше всего справиться с этим. Допустим, у меня выбрано x
фильтров. Это означало бы, что я должен в основном отфильтровать значения x
из ObservaleList
:
logTable.setItems(logTable.getItems().filtered(log -> !log.getSource().equals(checkBox.getText())));