JavaFX 按钮按下问题

JavaFX button pressed issue

我需要在按下按钮时改变按钮颜色,我在场景生成器中制作界面并使用 fx css 设置样式。我试过了:

.botones:hover { 
    -fx-background-color: red;
}

.botones:pressed {
    -fx-background-color: blue;
}

.botones { 
    -fx-background-color:  #262626;
}

悬停效果很好,但是当我按下按钮时,它会变蓝一秒钟然后变回原来的颜色,我希望它保持蓝色。

也许我可以改用切换按钮,但我使用的是 jfoenix 按钮,因为它们有一些很酷的效果。

你说得对,JFoenix 中的 ToggleButton 更像是一个开关:

但是,您可以在 JFoenix 中使用一个鲜为人知的控件 JFXToggleNode

只要在里面放一个标签。 (不要忘记包含 import 语句。)

<?import com.jfoenix.controls.JFXToggleNode?>
<?import javafx.scene.control.Label?>

...

<JFXToggleNode>
    <Label text="Boton Azul" />
</JFXToggleNode>

并将这条规则添加到您的样式表中:

.jfx-toggle-node {
    /* This is the color once toggled on. */
    -jfx-toggle-color: deepskyblue;
}

请注意,SceneBuilder 还不能很好地支持非标准控件,因此尽管您不能拖放它,但您可以手动添加到FXML文件中就好了.