我需要在两个 TextField 之间建立下一个依赖关系:当我点击其中任何一个时,它们都会改变它们的样式。
我试着让它像这样:
tb2.styleProperty().bindBidirectional(tb1.styleProperty());
tb1.setOnMouseClicked(new EventHandler<MouseEvent>() {
@Override
public void handle(MouseEvent t) {
System.out.println(tb1.styleProperty().toString());
System.out.println(tb2.styleProperty().toString());
tb1.getStyleClass().clear();
tb1.getStyleClass().add("green");
System.out.println(tb1.styleProperty().toString());
System.out.println(tb2.styleProperty().toString());
}
});
但是不行:tb1点击后改变了样式,而tb2没有;此外,systemouts 显示样式不相等:
StringProperty [bean: TextField[id=tb1, styleClass=green], name: style, value: ]
StringProperty [bean: TextField[id=tb2, styleClass=text-input text-field], name: style, value: ]
StringProperty [bean: TextField[id=tb1, styleClass=green], name: style, value: ]
StringProperty [bean: TextField[id=tb2, styleClass=text-input text-field], name: style, value: ]
另外,我尝试绑定他们的 text 属性,并且它可以工作(当我更改其中一个 TextField 中的文本时,另一个中的文本也会更改):
tb2.textProperty().bindBidirectional(tb1.textProperty());
那么,我在 Style Property 上做错了什么?