gpt4 book ai didi

java - 将 Swing 组件绑定(bind)到 Java 对象

转载 作者:行者123 更新时间:2023-11-30 04:57:18 26 4
gpt4 key购买 nike

我目前正在使用 Swing 开发 Java 桌面应用程序。我使用 jdesktop.org 的 beansbinding 框架来同步 GUI 组件和数据对象的状态。然而,我在框架方面遇到了麻烦,迫使我手动在 GUI 组件和数据对象之间来回传输状态信息。

是否有 beansbinding 框架的替代方案(我认为 NetBeans 也使用该框架?)?您是否可以推荐一些策略(例如根本不使用绑定(bind)?该怎么做?)?

如果您想知道我在使用 beansbinding 时面临哪些问题:

  • 它取代了 JTables 中的 TableModel(因此我无法使用自己的行或删除行)
  • 某些属性不可访问或不可用,例如 selectedItem 或 selectedObject(至少在 JComboBox、JList 等中保持一致)
  • 某些属性是只读或只写的(例如 selectedItem 或 selectedObject)
  • 我可以为 null 值绑定(bind)特殊值,但我不能使用自定义映射函数或其他东西将列表中的数字映射到 JComboBox 中的字符串(我知道我可以使用适当的方法创建一个特殊的类) toString 方法,但这迫使我为我的数据集创建特殊的包装对象)
  • ...

最佳答案

尽管 Beansbinding 可用,但它已经死了 - 它被人为地插入 1.x 状态,当时它还远远没有获得该版本号,并且从那时起没有太大变化。无论您发现什么问题,它们都不会得到解决 - 除非您自己解决:-) 至于特定的项目符号:

  • 总体思想是 TableModel 是一个对象列表,其列绑定(bind)到对象的属性(bean 或 EL)。它通常是一个 ObservableList,确实支持修改。
  • JComboBox 是一个建筑工地。 JList/JTable 中的选择绑定(bind)可用且一致
  • 使(单个)选择可写并不是什么大问题(在孵化器中使用 JXTable 适配器进行了实验)。没有看到只写属性,您是什么意思?
  • 与每个绑定(bind)框架一样,您需要转换器来映射值类型(顺便说一句,这与渲染无关,但在编辑中发挥作用)

当前明显的替代方案是 JGoodies Binding。有一段时间没有研究它,但看到它最近推出了新版本,所以肯定正在开发和使用中。 future 的替代方案可能是 fx 绑定(bind) - 它仍处于起步阶段,等待善良的人围绕其准系统构建一些可用的框架。

关于java - 将 Swing 组件绑定(bind)到 Java 对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8115789/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com