JavaFX 中的样式按下按钮

style pressed button in JavaFX

我的 FXML 文件中有一个 Button,我在下面给它一个样式 CSS

.button {
    -fx-background-color: linear-gradient(#ff5400, #be1d00);
    -fx-background-radius: 30;
    -fx-background-insets: 0;
    -fx-text-fill: white;
}

你可以看到这个按钮有一个新的很棒的样式,但是每次我点击它,它仍然像以前一样,你无法理解它是否被点击...

当我搜索时,我在这个 link 中找到了一个解决方案:Pressed CSS,但如果您注意到它是 Web 浏览器和 JavaFX 使用的 CSS 不支持它。

那么解决方法是什么?我希望我的按钮在用户点击它时改变它的外观。

您需要添加伪类状态 pressed 到您 css 并添加新的 css 到它,这将区分您当前的按钮 css 与按下时的按钮:

.button:pressed {
    // Your new css
}

要在 hovering the button 时更改样式,请使用:

.button:hover { 
    // Your new css
}

为了更好地了解可以添加什么样式来设置按钮样式,您可以查看 How to make a button appear to have been clicked or selected?

对于 javaFX 上的 arrayLists,请在 CSS 上尝试此操作以在鼠标单击时更改颜色:

.list-cell:selected { -fx-background-color: 黄色; }