我的大脑抽筋了,试图理解在我的应用程序中使用JGoodies绑定的适当方法。
我有一个类文章,它是一个具有只读属性的bean。Article是一个“普通”bean,它不管理属性侦听器,因为属性永远不会改变。我有一个Swing JPanel,我想用它来显示文章的某些属性。可以在不同的时间查看不同的文章对象。
我正在寻找通过一个或多个对象执行以下操作的东西(X):
X.setArticle()和X.getArticle()更改为另一篇文章。没有其他方法来更改当前查看的文章,我必须遍历X,以便它知道我正在更改它。我尝试使用BeanAdapter从包含在ValueHolder中的文章中提取属性模型,使用BasicComponentFactory.createTextField()来创建文本字段,除了我收到一个com.jgoodies.binding.beans.PropertyUnboundException抱怨文章类有未绑定属性外,这一切似乎都能工作。好了!我知道,我只是想不出怎样才能找到合适的“管道”来处理。每个Article都是不可修改的,但是当前查看的文章可能指向不同的文章。
有什么建议吗?
发布于 2009-04-14 22:34:24
我想通了。
我做了这样的事:
// on setup:
BeanAdapter<Article> adapter = new BeanAdapter<Article>((Article)null,
false);
// the "false" in the constructor means don't try to observe property
// changes within the Article, but we still can observe changes
// if the Article itself is replaced with a new one.
JTextField tfAuthors = BasicComponentFactory.createTextField(
adapter.getValueModel("authors"));
JTextField tfTitle = BasicComponentFactory.createTextField(
adapter.getValueModel("title"));稍后,当我更改文章对象时,我只需这样做:
public void showArticle(Article article)
{
adapter.setBean(article);
}屏幕上的一切都更新得很好。
https://stackoverflow.com/questions/749470
复制相似问题