(JavaFX 8)图形顶部的按钮文本

(JavaFX 8)图形顶部的按钮文本,java,css,button,javafx-8,Java,Css,Button,Javafx 8,我使用CSS将图像设置为按钮,如下所示(示例): 现在图片已经包含了按钮文本,但我发现这很不雅观,因为每次有一个新的按钮有不同的文本时,我都必须创建一个新的按钮图形。通过代码设置按钮的文本(如mybutton.setText(“text”);)仅显示按钮旁边的文本 使用-fx背景图像:url(“myurl”)显示奇怪的平铺图像,而不是按原始大小缩放的单个图像。手动设置大小也很不方便 在我看来,在图像和按钮之间使用窗格也不是很优雅。我真的希望有一个更好更简单的解决方案 在这种情况下有什么建议吗?您

我使用CSS将图像设置为按钮,如下所示(示例):

现在图片已经包含了按钮文本,但我发现这很不雅观,因为每次有一个新的按钮有不同的文本时,我都必须创建一个新的按钮图形。通过代码设置按钮的文本(如
mybutton.setText(“text”);
)仅显示按钮旁边的文本

使用
-fx背景图像:url(“myurl”)显示奇怪的平铺图像,而不是按原始大小缩放的单个图像。手动设置大小也很不方便

在我看来,在图像和按钮之间使用窗格也不是很优雅。我真的希望有一个更好更简单的解决方案


在这种情况下有什么建议吗?

您可以使用
-fx background repeat
-fx background size
属性避免背景图像的平铺:

#button-id {
    -fx-background-image: url("/main/img/mybutton.png");
    -fx-background-repeat: no-repeat;
    -fx-background-size: contain;
    ...
}

另外,除了使用
堆叠窗格
将图像和文本作为子对象作为图形进行堆叠外,没有其他方法可以将图像与文本堆叠在一起,这是使用CSS无法完成的。

我完全错过了这些属性,非常感谢您!
#button-id {
    -fx-background-image: url("/main/img/mybutton.png");
    -fx-background-repeat: no-repeat;
    -fx-background-size: contain;
    ...
}