JavaFX ToggleButton设置颜色并恢复默认颜色

时间:2016-06-08 05:23:04

标签: java css javafx togglebutton

切换按钮上的正常背景颜色和边框颜色是什么?例如:

i.toggle11.setOnAction(e->{
        if(i.toggle11.isSelected()){
            i.toggle11.setStyle("-fx-background-color:red");
             i.toggle12.setStyle("-fx-background-color:white");
             i.toggle13.setStyle("-fx-background-color:white");
        }
        else {
             i.toggle11.setStyle("-fx-background-color:white");
        }
    });

我想在这个动作之后放置其他切换'正常颜色'(当创建togglebutton时相同)

1 个答案:

答案 0 :(得分:1)

回答如何添加/删除样式

最简单的方法是,如果您通过添加CSS样式颜色为ToggleButton着色,然后在不再需要它时将其删除,因此它将具有与格式化之前相同的样式。

示例

要添加的代码

i.toggle11.setOnAction(e->{
        if(i.toggle11.isSelected()){
            i.toggle11.getStyleClass().add("red-button");
            i.toggle12.getStyleClass().add("white-button");
            i.toggle13.getStyleClass().add("white-button");
        }
        else{
             i.toggle13.getStyleClass().add("white-button");
        }
    });

然后删除代码

i.toggle11.getStyleClass().removeAll("red-button", "white-button");

CSS

.red-button {
    -fx-background-color: red;
}

.white-button {
    -fx-background-color: white;
}

只需确保添加了包含CSS样式的样式表,如:

scene.getStylesheets().add(getClass().getResource("application.css").toExternalForm());

<强>但是

我不知道你想要达到什么目标,但是如果你只想在选择它时为ToggleButton着色,你也可以在样式表中覆盖.toggle-button:selected而不需要其他造型:

.toggle-button:selected {
    -fx-background-color: red;
}

它总是覆盖现有CSS类和伪类的最简单方法。这是学习使用ToggleButton并设置样式的良好起点:Using JavaFX UI Controls

您可以查看.toggle-button here的可用样式类,也可以查看CSS reference guide