У меня болит мозг, пытаясь понять, как правильно использовать привязки JGoodies в моем приложении.
У меня есть класс Article, который является компонентом, который имеет свойства только для чтения. Article
является "простым" компонентом и не управляет прослушивателями свойств, поскольку свойства никогда не меняются. У меня есть Swing JPanel, который я хотел бы использовать для отображения определенных свойств статьи. Разные объекты Article могут просматриваться в разное время.
Я ищу что-то (X), которое выполняет следующие действия через один или несколько объектов:
- X содержит текущую статью. Я могу позвонить
X.setArticle()
и X.getArticle()
, чтобы перейти к другой статье. Нет другого способа изменить просматриваемую в данный момент статью, мне нужно пройти через X, чтобы он знал, что я ее изменяю.
- Когда я настраиваю свой JPanel, я хочу использовать X для создания JTextFields только для чтения, которые привязаны к различным свойствам просматриваемой статьи (заголовок, авторы и т. Д.)
- (это следует из # 1 и # 2) Каждый раз, когда вызывается X.setArticle (), содержимое текстовых полей будет автоматически обновляться.
Я пытался использовать BeanAdapter для извлечения моделей свойств из статьи, содержащейся в ValueHolder, и BasicComponentFactory.createTextField () для создания текстовых полей, и все это работает , за исключением , который я получаю com.jgoodies.binding.beans.PropertyUnboundException
жалуется, что у моего класса Article есть несвязанные свойства. Duh! Я знаю это, я просто не могу понять, как правильно подобрать «водопровод», чтобы справиться с этим. Каждый Article
не подлежит изменению, но просматриваемая в данный момент статья может указывать на другую.
есть предложения?