Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/332.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java JTextField的观察者模式?_Java_Observer Pattern_Jtextfield - Fatal编程技术网

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()。支持委托而不是继承。