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

时间:2017-12-06 01:49:47

标签: java css javafx

我制作的按钮每次按下时都需要在两种颜色之间切换。我想通过比较样式类来看看它是否匹配"绿色"或"红色" css课。像这样。

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

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

1 个答案:

答案 0 :(得分:2)

$.ajax({ url: 'devices.json', data: {}, datatype: 'JSON', method: 'GET', success: function(data) { var devices = data; function print_dev() { var str = ""; str += '<h3>Ajax, JSON Data</h3>'; document.getElementById('wrapper').innerHTML = str; } print_dev(); } }); 重新生成包含样式类的.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");
}