2 つの 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: ]
また、テキスト プロパティをバインドしようとしましたが、動作します (TextField の 1 つのテキストを変更すると、他のテキストも変更されます)。
tb2.textProperty().bindBidirectional(tb1.textProperty());
それで、私はスタイルプロパティで何が間違っていますか?