我想为我的项目设置一个模型,以便我的控制器可以相互通信。我希望它有一个setter和getter,以允许从任何一个类别轻松访问样式化某些节点。在JavaFX中将CSS样式属性绑定到节点
我的问题:是否有可能将一个样式属性(例如“-fx-background-color:blue”)绑定到节点上?
从我的研究中,我发现标签的文本值绝对是可能的(James_D在这里解释:JavaFX - How to use a method in a controller from another controller?),但我很难弄清楚用“setStyle”做类似的事情的语法是什么,将会。
模型我到目前为止有:
public class Model {
private final StringProperty shadow = new SimpleStringProperty("-fx-effect: dropshadow(three-pass-box, rgba(0,0,0,0.24), 10,0,0,0)");
public StringProperty shadowProperty() {
return shadow;
}
public final String getShadow() {
return shadowProperty().get();
}
public final void setShadow(String shadow) {
shadowProperty().set(shadow);
}
}
我明白,我怎么会从一个控制器设定的“影子”的价值,但我不明白的是我怎么能一个节点从另一个控制器绑定听取这一变化。
假设节点是一样的东西:
@FXML AnchorPane appBar
我想“appBar”采取到模型中的“阴影”所做的任何更改。那将是什么样子?
你能不能给你试了一下一个例子,并解释为什么没有工作?目前还不清楚确切的问题是什么。 – Itai
已更新的问题。 – Shane