Я бы ожидал, что второй вариант сработает, но это не так.Причина, вероятно, заключается в следующем (из api doc ELProperty)
Очень важно, чтобы любые свойства компонента, адресованные через ELProperty, следовали спецификации Java Beans, включая уведомление об изменении свойства запуска;в противном случае ELProperty не может ответить на изменение
метод size () списка не соответствует ни одному из двух условий.
один выход - подключить конвертер (ручное кодирование), никогда не будет использовать Netbeans: -)
AutoBinding sizeBinding =
Bindings.createAutoBinding(UpdateStrategy.READ,
table, ELProperty.create("${selectedElements}"),
countLabel, BeanProperty.create("text")
);
Converter<List<?>, String> converter = new Converter<List<?>, String>() {
@Override
public String convertForward(List<?>value) {
if (value != null) {
return "" + value.size();
}
return "empty";
}
@Override
public List<?> convertReverse(String value) {
return null;
}
};
sizeBinding.setConverter(converter);
Другой способ - реализовать и подключить BeanAdapterProvider / -Factory, как упоминалось в том же документе, не пытался.