Swing中的委派(Python Traits Equivalent)

时间:2015-12-15 15:29:42

标签: java swing traits traitsui

我是一名长期的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;
}

是否可以在类fooTextFoo之间同步View的值?在上面的示例中,我不得不通过事件侦听器手动传递新值。在Python traits库中,我可以简单地告诉Foo使用委托。类似的东西:

class Foo(HasTraits):
      view = Instance(View);
      String fooText = DelegatesTo(view)

通过这种方式,我只是将对View对象的引用传递给程序中的其他对象,而不是传递共享变量,然后对View.fooText的任何更改都会立即传播到委托类。当UI字段需要在许多类中共享时,这非常有用。

在java / swing中有这样的东西吗?

由于

0 个答案:

没有答案