如何在 JavaFX 中将图像设置为按钮的大小

Posted

技术标签:

【中文标题】如何在 JavaFX 中将图像设置为按钮的大小【英文标题】:How to set an image to the size of a button in JavaFX 【发布时间】:2019-08-06 17:24:33 【问题描述】:

我在学校使用 JavaFX,单击按钮时需要在按钮上显示图片。我的问题是图像比按钮大,然后一切都很糟糕。我已经看过很多关于如何将图像适合按钮的帖子,并且我附带了该代码

Image imageOk = new Image(getClass().getResourceAsStream("/TP2/ressources/flag.png"));
ImageView img = new ImageView(imageOk);
img.setFitWidth(100);
img.setFitHeight(100);
btn.setGraphic(img);

当我创建按钮时,我使用setPrefSize(50, 50);

【问题讨论】:

【参考方案1】:

可以使用ImageView的fitWidthPropertyfitHeightProperty绑定到按钮的widthPropertyheightProperty

img.fitWidthProperty().bind(btn.widthProperty());
img.fitHeightProperty().bind(btn.heightProperty());

这将导致 ImageView 每次都与按钮大小相同。

这会导致图像被拉伸。为了防止这种情况,您可以在图片上使用setPreserveRatio

img.setPreserveRatio(true);

这是完整的示例代码:

Button btn = new Button();
btn.setPrefSize(50, 50);
Image imageOk = new Image(getClass().getResourceAsStream("yes.png"));
ImageView img = new ImageView(imageOk);
img.setPreserveRatio(true);
img.fitWidthProperty().bind(btn.widthProperty());
img.fitHeightProperty().bind(btn.heightProperty());
btn.setGraphic(img);

【讨论】:

以上是关于如何在 JavaFX 中将图像设置为按钮的大小的主要内容,如果未能解决你的问题,请参考以下文章

如何在 javafx 中将任何文本或字母转换为图像

在 iphone sdk 中将固定大小的圆形按钮设置为图像

如何在 SwiftUI 中将图像设置为按钮?

如何在图像视图中将图像设置为适合屏幕

如何在浮动操作按钮中将图像设置为居中裁剪

如何在 iOS 中将全屏大小的图像设置为启动屏幕?