Вы можете использовать fitWidthProperty
и fitHeightProperty
ImageView и связать их с widthProperty
и heightProperty
кнопки:
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);