У меня проблема с моим элементом TableView. Я добавление слушателя так:JavaFx TableView itemProperty не уведомляет ChangeListener
HardwareIdTableView.getItems().addListener(
(ListChangeListener.Change<? extends FirmwareData.HardwareIdWrapper> change) -> {
checker.hardwareIdCompleted.setValue(change.getList().size() > 0);
});
checker.hardwareIdCompleted является BooleanProperty. Я проверил в отладчике, и новые элементы были добавлены в TableView, но hardwareIdCompleted все еще сопротивляется 'false'.
P.S. добавить элементы в TableView так:
public void addHardwareKey(HardwareIdKeyT key) {
ObservableList<FirmwareData.HardwareIdWrapper> idKeys = HardwareIdTableView.getItems();
if (idKeyEditSelected != null) {
fwData.removeHardwareIdKey(idKeyEditSelected.getIdPattern());
idKeys.remove(idKeyEditSelected);
}
if (!idKeys.contains(key)) {
HardwareIdTitledPane.pseudoClassStateChanged(PseudoClass.getPseudoClass("pane-error"), false);
idKeys.add(new FirmwareData.HardwareIdWrapper(key));
fwData.addHardwareIdKey(key);
}
}
Что вы пытаетесь сделать? Что указывает аппаратное обеспечение? Если вы хотите отслеживать пустоту таблицы, вы можете попробовать booleanProperty.bind (Bindings.isNotEmpty (tableiew.getItems())); –
Хорошо, спасибо. Я попробую. Но мне интересно, почему это решение не работает?! – Constantine
На мой простой тест. Он работает так, как ожидалось. Вызывается прослушиватель, и размер списка увеличивается при добавлении элемента. –