Как привязать компонент к большему количеству классов привязки
Кто-нибудь знает, как связать один свинговый 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")));
}
}