我想将 Java Swing JTextField 绑定到我的数据模型的 String 属性。
因此,我想使用PropertyChangeListener来侦听模型中文本属性的变化,然后更新 GUI 中的文本字段(模型--> GUI)。
对于另一个方向(GUI--> 模型) ,当用户更改字段中的文本时,我想在 JTextField 的文档上使用DocumentListener来更新模型。
当我这样做时,只要我更改文本字段中的文本,就会得到IllegalStateException 。
java.lang.IllegalStateException: Attempt to mutate in notification
at javax.swing.text.AbstractDocument.writeLock(AbstractDocument.java:1323)
at javax.swing.text.AbstractDocument.replace(AbstractDocument.java:644)
at javax.swing.text.JTextComponent.setText(JTextComponent.java:1693)
...
我怎样才能避免这种情况?
顺便说一句:BeansBinding 对我来说并不是一个真正令人满意的解决方案,因为它被放弃了,此外,我必须在对象图中实例化一些对象,然后才能写入它们。