【发布时间】:2016-03-22 06:04:17
【问题描述】:
我想为我的项目设置一个模型,以便我的控制器可以相互通信。我希望它有一个 setter 和 getter,以便轻松访问任一类的某些节点的样式。
我的问题:是否可以将样式属性(例如“-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”承担对模型中“shadow”所做的任何更改。那会是什么样子?
【问题讨论】:
-
你能举一个你试过的例子,并解释为什么它不起作用?目前尚不清楚确切的问题是什么。
标签: css javafx properties styles bind