Как привязать компонент к большему количеству классов привязки - PullRequest
0 голосов
/ 20 сентября 2011

Кто-нибудь знает, как связать один свинговый JComponent с двумя классами BeansBinding (особенно с IDE Netbeans)? Также как связать переменную в JFrame со свойством класса beanbinding?

1 Ответ

1 голос
/ 21 сентября 2011

А) Хм ... до сих пор не уверен, чего именно ты хочешь достичь: возможно, построить связующую цепь?Что-то вроде

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 - это все о связывании properties не поля (иначе: переменные).Таким образом, все, что вы хотите связать, нуждается в получателе и (может быть, в зависимости от ваших требований) и должно генерировать уведомление об изменении.Затем выполните связывание, как всегда ..

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"))); 

    }
}
...