【问题标题】:Swing Databinding for multiple JComponents多个组件的 Swing 数据绑定
【发布时间】:2023-04-11 20:21:01
【问题描述】:

我对 JAVA 还是很陌生。我有一个域模型(包含数据),我有一个查看器模型(提供 GUI)。现在我在不同的窗口上有几个 JLabel(或任何其他 JComponent),绑定到域模型中的同一个数据源。

我尝试使用 beansbinding,但不幸的是 beansbinding 似乎不支持在单个源上绑定多个小部件 - 只有一个小部件被更新,其他小部件保持不变。

由于许可证问题,我无法使用 JGoodies。

有人知道另一个(免费的)SWING 数据绑定项目吗?

提前致谢 琼

【问题讨论】:

  • 我不知道任何替代方案并编写了我自己的 VMC-Databinding-Manager
  • 您未显示的代码可能有问题 ;-) 任何属性的绑定数量都没有限制,因此通过正确设置,所有标签都应在更新它们的 bean 属性时更新正在显示

标签: java swing data-binding


【解决方案1】:

查看随 NetBeans 提供的客户端编辑器示例应用程序(新项目 -> 示例/Java/客户端编辑器)

  1. 打开主框架:ClientEditor.java
  2. 在某处添加标签(例如在左下角)
  3. 更改其绑定(在“属性”窗口中)并使用与usernameLabel(在“客户端信息:”右侧)相同的“公式”,即:Form[${client.firstName} ${client.surname}]

结果:

【讨论】: