1 つのスイング JComponent を 2 つの BeansBinding クラス (特に Netbeans IDE を使用) にバインドする方法を知っている人はいますか? また、JFrame の変数を beanbinding クラスのプロパティにバインドする方法は?
質問する
626 次
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 に答える