Как привязать компонент к большему количеству классов привязки

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

1 ответ

Решение

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

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

    }
}
Другие вопросы по тегам