Java JTextField的观察者模式?
假设我有一门课:Java JTextField的观察者模式?,java,observer-pattern,jtextfield,Java,Observer Pattern,Jtextfield,假设我有一门课: class Boy { int age = 25; } 我有一个JTextField,age,它更新Boy的“age”实例字段。或者,如果男孩的年龄以另一种方式更改(可能是setAge()),我需要能够在JTextField中反映这种更改 使用观察者模式是一种方法。在这种情况下,我是否被迫创建一个新类JTextFieldThatObserves(从JTextField继承并实现Observer) 默认JTextField是否无法完成我需要它完成的任务?Java没有
class Boy
{
int age = 25;
}
我有一个JTextField,age,它更新Boy的“age”实例字段。或者,如果男孩的年龄以另一种方式更改(可能是setAge()),我需要能够在JTextField中反映这种更改
使用观察者模式是一种方法。在这种情况下,我是否被迫创建一个新类JTextFieldThatObserves(从JTextField继承并实现Observer)
默认JTextField是否无法完成我需要它完成的任务?Java没有为Swing组件和对象字段提供自动绑定框架。这是它的主要缺陷之一 恐怕做这件事的唯一机制是在小部件和对象上使用观察者模式,并注意无限循环
在这些情况下,一个有用的工具是
属性编辑器,因为它可以避免创建大量不同的侦听器/事件类。如果您打算做更多这类事情,我强烈建议您花一点时间学习一种可用于Java的绑定框架。我个人使用。您不必创建一个观察的JTextField。您可以创建一个观察器,在普通的ol'JTextField上调用setText()。支持委托而不是继承。