问题标签 [beans-binding]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
2456 浏览

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

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

是否有 beanbinding 框架的替代品(我认为 NetBeans 也使用它?)?有什么可以推荐的策略(比如根本不使用绑定?该怎么做?)?

如果您想知道我在使用 beanbinding 时遇到了什么问题:

  • 它在 JTables 中替换了我的 TableModel(所以我不能使用自己的行或删除行)
  • 某些属性不可访问或不可用,例如 selectedItem 或 selectedObject(至少在 JComboBox、JList 等中一致)
  • 某些属性要么是只读的要么是只写的(比如 selectedItem 或 selectedObject)
  • 我可以为 null 值绑定特殊值,但我不能例如使用自定义映射函数或其他东西将列表中的数字映射到 JComboBox 中的字符串(我知道我可以使用适当的 toString 方法创建一个特殊类,但是这迫使我为我的数据集创建特殊的包装对象)
  • ...
0 投票
1 回答
650 浏览

java - 按下取消按钮时 Swing DataBinding 回滚更改

我有一个简单的 JFrame,里面有几个 jtextfields,每个 jtextfield 的 text 属性通过数据绑定与对象的一个​​字段绑定(我使用窗口构建器来设置绑定),当用户在 JTextField 上更改某些内容时,更改会自动反映对于绑定对象属性,我需要当用户按下 JButton(取消按钮)时,用户所做的所有更改都将被丢弃。

所以我希望当用户开始编辑像事务这样的字段时,将启动事务,并且根据用户操作(确定或取消按钮),事务被提交或回滚。

Swing 数据绑定框架可以吗?如何 ?

这里是初始化数据绑定的代码:

0 投票
2 回答
2737 浏览

java - org.jdesktop.swingbinding.JTableBinding$BindingTableModel 无法转换为 javax.swing.table.DefaultTableModel

我试图对 JTable 标头进行分组,为此我想获取当前 JTable 的 DefaultTableModel。但是当我尝试像这样检索表模型时:

它显示以下异常:

org.jdesktop.swingbinding.JTableBinding$BindingTableModel 无法转换为 javax.swing.table.DefaultTableModel

因为我使用的是 JTableBeansBinding。

有谁知道如何解决这个问题(用于检索 DefaultTableModel)?

0 投票
2 回答
922 浏览

java - 使用 Metawidget 将对象与 GUI 中的值同步

我正在使用Metawidget自动查看/编辑 GUI 中对象中的值。我能够绑定对象的初始值,并在它们各自的 GUI 组件中查看它们。但是,当我更改 GUI 中的值时,这些更改不会同步回对象。这或多或少地记录在此处(已弃用)和此处

这是我的业务对象:

这是我的主要方法,其中配置了 metawidget:

文档中说:

如果设置为 READ 或 READ_WRITE(默认为 READ_ONCE),则被检查的对象必须提供 PropertyChangeSupport。如果设置为 READ_WRITE,对 UI 的更新会自动同步回 setToInspect,否则客户端必须手动调用 save:

myMetawidget.getWidgetProcessor(BeansBindingProcessor.class).save(myMetawidget)

我尝试将UpdateStrategy设置为 READ 和/或 READ_WRITE,和/或在BeansBindingProcessor上调用 save() 。我还尝试为 Person 对象提供PropertyChangeSupport 认为它指的是this),这与添加以下代码相同:

但是,Person对象始终保持原始值。

提前致谢。

0 投票
1 回答
104 浏览

java - ClassCastException Beansbinding Java

你能告诉我为什么我在这里得到ClassCastException异常吗?

这是文本字段:

并且Apprentice.java具有属性“vorname”(德语为名字),它是带有 getter 和 setter 的私有字段。

0 投票
4 回答
4389 浏览

java - 更新后刷新 JTable

这是我遇到的问题的一个简单示例。

我有一个简单的课程:

请注意,它有一个名为 C 的属性,它是 a 和 b 的总和。

然后我将它绑定到一个 JTable,如下所示:

然后,我使用以下代码为测试对象的每个属性 a、b 和 c 添加绑定。(注意这只是我使用的通用代码)

现在这将正确显示表格,但是当我更新表格中的 a 或 b 时会出现问题。由于 c 是根据 a 和 b 计算的,因此我希望 c 在其中一个值发生变化时更新。这不会发生。

我猜表需要刷新以反映实体的新值?

谁能解释我需要做些什么来实现这一点?我需要添加一些额外的 bean 绑定属性吗?

这是我正在使用的 bean 绑定库:

0 投票
1 回答
695 浏览

java - java beansbinding JButton.enabled

我正在使用 Netbeans 7.3 中的 jdesktop 的 beansbinding 库。我有一个非常具体的问题。如果另一个 bean 的任何属性不为空,我希望启用 JButton,如果为空,则禁用。

所以我尝试创建一个 ELBinding (它有条件支持,比如${myProperty > 50}返回一个布尔值,持有这个表达式是否为真。

但在我的情况下,我无法弄清楚(在互联网上也找不到)如何写下这种情况。如果我有一个用于属性更改的事件监听器,我会写这样的东西(在一些 PropertyChangeListener 实例的抽象方法中):

非常感谢任何提示,因为我发现 ELProperties 的文档记录很差。

0 投票
2 回答
909 浏览

java - 使用 bean 绑定搜索 jTable

我有一个 jTable,它由使用 Beans Binding 的数据库中的数据填充。我想为表实现一个搜索功能。我遇到了以下教程,它使用 bean 绑定实现了这一点:

https://weblogs.java.net/blog/pkeegan/archive/2008/06/using_beans_bin.html

我无法让它工作。当我运行我创建的示例应用程序时,我看到一个意外的值,例如“javax.swing.table.TableRowSorter@16994fe8”出现在搜索文本字段中。这实际上来自转换器类中的 convertForward() 方法,该方法将 TableRowSorter 对象转换为字符串。当我在文本字段中输入内容时,什么也没有发生。

我已将 jTable 的 autoCreateRowSorter 属性设置为 true。我没有使用自定义表模型,因为该表是使用默认表模型的 bean 绑定填充的。

请注意,转换器类的 getTable()、setTable() 或 convertReverse() 方法不会被调用。我想知道我是否在此过程中遗漏了什么。

下面是我用来将搜索文本字段与 jTable 绑定的代码:

非常感谢这方面的任何帮助。

0 投票
0 回答
563 浏览

java - JTable Binding - JTable 列与实体中的瞬态字段绑定,不可编辑

我的表单(Jpanel)中有一个 jtable,它使用 jpa 通过 jtableBinding 绑定到 DB。(通过netbeans自动生成)

我通过在实体类@transient 中创建对应的字段,在jtable 中添加了一个复选框。这样我就不需要数据库表中此复选框的列。

我现在面临的问题是该复选框不可编辑。

我的实体类

.

我生成的 UI 代码

0 投票
1 回答
704 浏览

java - 将 JTable selectedRow 绑定到 JTextField 时出现问题 (org.jdesktop.beansbinding)

我有一个 Java Swing 应用程序,想将选定的 JTable 行绑定到 JTextField。我的绑定如下所示:

文本字段在开始时填充了一次“-1”,因为没有选择任何行。如果我单击一行,则文本字段不会更新。一种丑陋的解决方法是在表的鼠标侦听器中调用unbind()andbind()方法。但我认为在我的绑定过程中缺少一些东西。

也许你们中的一个人有一个想法。谢谢!