首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >将JTable selectedRow绑定到JTextField (org.jdesktop.beansbinding)的问题

将JTable selectedRow绑定到JTextField (org.jdesktop.beansbinding)的问题
EN

Stack Overflow用户
提问于 2014-02-11 15:11:12
回答 1查看 709关注 0票数 0

我有一个Java应用程序,希望将选定的JTable行绑定到JTextField。我的装订方式如下:

代码语言:javascript
复制
    BeanProperty<JTable, Integer> tableBeanProperty = BeanProperty.create("selectedRow");
    BeanProperty<JTextField, String> textFieldProperty = BeanProperty.create("text");
    Binding<JTable, Integer, JTextField, String> binding = Bindings.createAutoBinding(UpdateStrategy.READ_WRITE, table1, tableBeanProperty, field1, textFieldProperty);
    binding.bind();

文本字段在开头填充一次'-1',因为没有选择行。如果我单击一行,则没有更新文本字段。一个丑陋的解决方法是在表的鼠标侦听器中调用unbind()bind()方法。但我觉得我的装订过程中缺少了一些东西。

也许你们中的一个有个主意。谢谢!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-02-12 14:23:57

文档中说,"selectedElement“可以用于此目的。有了这个属性,它可以不使用丑陋的unbind()bind()

现在,代码看起来如下:

代码语言:javascript
复制
BeanProperty<JTable, MyObject> tableBeanProperty = BeanProperty.create("selectedElement");
BeanProperty<JTextField, String> textFieldProperty = BeanProperty.create("text");
Binding<JTable, MyObject, JTextField, String> binding = Bindings.createAutoBinding(UpdateStrategy.READ_WRITE, table1, tableBeanProperty, field1, textFieldProperty);
binding.bind();

为了将"MyObject“转换为"String",我在绑定中添加了一个转换器。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/21705626

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档