我是一名长期的Python开发人员,依靠Enthought的Traits / TraitsUI库进行快速GUI开发。我试图了解Swing是否有类似的Traits实现,这样可以轻松授权。
想象一下,我有一个引用另一个类Foo
的JFrame,并且有一个文本字段fooText
。当用户更改fooText
时,会触发一个事件,并将更改传播到Foo
public class View extends javax.swing.JFrame {
private Foo foo;
private javax.swing.JTextField fooText;
private void jTextField1ActionPerformed(java.awt.event.ActionEvent evt){
foo.fooText = this.fooText.getText();
...
}
Foo
类也共享fooText
值:
public class Foo{
public String fooText;
}
是否可以在类fooText
和Foo
之间同步View
的值?在上面的示例中,我不得不通过事件侦听器手动传递新值。在Python traits库中,我可以简单地告诉Foo使用委托。类似的东西:
class Foo(HasTraits):
view = Instance(View);
String fooText = DelegatesTo(view)
通过这种方式,我只是将对View
对象的引用传递给程序中的其他对象,而不是传递共享变量,然后对View.fooText
的任何更改都会立即传播到委托类。当UI字段需要在许多类中共享时,这非常有用。
在java / swing中有这样的东西吗?
由于