0

1 つのスイング JComponent を 2 つの BeansBinding クラス (特に Netbeans IDE を使用) にバインドする方法を知っている人はいますか? また、JFrame の変数を beanbinding クラスのプロパティにバインドする方法は?

4

1 に答える 1

1

A) うーん... 何を達成したいのかまだよくわかりません: バインド チェーンを構築しますか? 何かのようなもの

bean."name" <--> textField."text" --> otherBean.logger

    BindingGroup context = new BindingGroup();
    context.addBinding(Bindings.createAutoBinding(UpdateStrategy.READ_WRITE,
            bean, BeanProperty.create("name"), 
            field, BeanProperty.create("text"))); 
    context.addBinding(Bindings.createAutoBinding(UpdateStrategy.READ,
            field, BeanProperty.create("text"), 
            otherBean, BeanProperty.create("logger"))); 

B) Beansbinding は、フィールドではなくプロパティ(別名: 変数) をバインドすることがすべてです。したがって、バインドしたいものにはゲッターが必要であり(要件によってはセッターかもしれません)、変更時に通知を送信する必要があります。その後、いつものようにバインディングを行います..

public MyFrame extends JFrame {
    private int attempts;

    public int getAttempts() {
        return attempts;
    } 

    private void incrementAttempts() {
        int old = getAttempts();
        attempts++;
        firePropertyChange("attempts", old, getAttempts()); 
    }

    private void bind() {
    BindingGroup context = new BindingGroup();
    context.addBinding(Bindings.createAutoBinding(UpdateStrategy.READ,
            this, BeanProperty.create("attempts"), 
            label, BeanProperty.create("text"))); 

    }
}
于 2011-09-21T16:21:07.047 に答える