gpt4 book ai didi

JavaFx:是否可以检查元素是否具有特定的样式类?

转载 作者:行者123 更新时间:2023-11-30 02:18:11 25 4
gpt4 key购买 nike

我正在制作每次按下时都需要在两种颜色之间切换的按钮。我想通过比较样式类来查看它是否与“绿色”或“红色”CSS 类匹配来做到这一点。就像这样。

if(clickedBtn.getStyleClass() == "green") {
clickedBtn.getStyleClass().add("red");
} else {
clickedBtn.getStyleClass().add("green");
}

这不起作用,因为它不识别“绿色”。有更简单的方法吗?我只需要一个带有可选座位的图形显示器。谢谢

最佳答案

.getStyleClass() 重新运行包含样式类的 ObservableList。这永远不会是与字符串文字相同的对象,因此 == 检查始终会产生 false。检查节点是否具有样式类的正确方法是调用列表的 contains 方法:

if (clickedBtn.getStyleClass().contains("green")) {

因为您可能希望红色和绿色相互排斥。您还应该删除样式类:

if(clickedBtn.getStyleClass().remove("green")) {
clickedBtn.getStyleClass().add("red");
} else {
clickedBtn.getStyleClass().remove("red");
clickedBtn.getStyleClass().add("green");
}

但是使用伪类可能会更方便一点:

private final static PseudoClass GREEN = PseudoClass.getPseudoClass("green");
private final static PseudoClass RED = PseudoClass.getPseudoClass("red");

...

boolean isGreen = clickedBtn.getPseudoClassStates().contains(GREEN);
clickedBtn.pseudoClassStateChanged(GREEN, !isGreen);
clickedBtn.pseudoClassStateChanged(RED, isGreen);

关于JavaFx:是否可以检查元素是否具有特定的样式类?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47665567/

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