首页 > 解决方案 > 单击/聚焦时,Java FX 按钮略小

问题描述

我有一个问题,我的 JavaFX 中的按钮在单击时会变小。

在这里您可以看到“更改密码”按钮被单击/选中。

在这里你可以看到“管理功能”按钮被点击/选择。

我怀疑这与具有焦点的按钮有关,因为当我单击 chrome 或其他正在运行的应用程序时,它会恢复为所需的外观

按钮当前位于 4x1 GridPane 内,第 0 个插槽被标签占用。

如果有帮助,这是我的 CSS:

.button{
-fx-border-color: null;
-fx-border-width: 0;
-fx-background-color: #2c3cff;
-fx-fill: true;
-fx-pref-height: 100;
-fx-pref-width: 320;
-fx-text-fill: #b9b9b9;
-fx-border-radius: 0;
-fx-min-width: 320;
-fx-min-height: 100;
-fx-background-radius: 0;
-fx-animated: false;

}


.grid{
    -fx-background-color:#3e3e48;
}

.label{
    -fx-text-fill: #b9b9b9;
}

编辑:我找到了一个临时的“解决方案”,更多的是一种解决方法:我在 HBox 下方放置了一个水平分隔符,这让我可以掩盖奇怪的按钮大小变化。仍然希望得到有关如何正确执行此操作的答案。

谢谢!

标签: javacssbuttonjavafxfxml

解决方案


因此,经过长时间尝试使用分隔符等变通方法后,我想通了。

默认的 FX 样式表将此应用于所有按钮:

    -fx-background-insets: 0 0 -1 0, 0, 1, 2;

虽然在我的.button:focused定义中我将这些设置为 0,但在我的.button定义中我没有,所以它从默认 CSS 中获取了 insets 值。通过适用-fx-background-insets: 0,0,0,0,0;于两者.button.button:hover我能够达到预期的结果。

注意:您可以输入-fx-background-insets: 0;i left the full values 以防我想在以后更改。


推荐阅读