gpt4 book ai didi

javafx "setstyle"一次又一次的会丢失之前设置的样式

转载 作者:太空宇宙 更新时间:2023-11-04 11:07:29 29 4
gpt4 key购买 nike

代码:我在舞台上添加一个按钮:

Button btn = new Button("Change size");

然后设置当前文本颜色:

btn.setStyle("-fx-text-fill:red");

设置更改文本大小的按钮操作:

btn.setOnAction(e->btn.setStyle("-fx-font-size:19"));    

我首先为按钮设置颜色样式。它有效,文本颜色为红色。当我单击按钮时,大小也发生了变化,但颜色恢复为默认值。

我想要的是:当我设置大小时,按钮可以保持当前的样式。

最佳答案

不要使用内联样式。使用外部样式表:

.button {
-fx-text-fill: red ;
}

并使用scene.getStylesheets().add(...);将其附加到场景(传入外部样式表的资源名称)。

然后在代码中您可以使用内联样式动态更改样式:

Button btn = new Button("Change size");
btn.setOnAction(e->btn.setStyle("-fx-font-size:19"));

如果您愿意(而且可能更好),您还可以使用外部样式表作为“动态”样式,例如通过使用 PseudoClass :

.button {
-fx-text-fill: red ;
}

.button:sized {
-fx-font-size: 19pt ;
}

btn.setOnAction(e -> 
btn.pseudoClassStateChanged(PseudoClass.getPseudoClass("sized"), true));

关于javafx "setstyle"一次又一次的会丢失之前设置的样式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46346647/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com