我有一个Java应用程序,希望将选定的JTable行绑定到JTextField。我的装订方式如下:
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()方法。但我觉得我的装订过程中缺少了一些东西。
也许你们中的一个有个主意。谢谢!
发布于 2014-02-12 14:23:57
文档中说,"selectedElement“可以用于此目的。有了这个属性,它可以不使用丑陋的unbind()和bind()。
现在,代码看起来如下:
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",我在绑定中添加了一个转换器。
https://stackoverflow.com/questions/21705626
复制相似问题