Как установить изображение под размер кнопки в JavaFX - PullRequest
4 голосов
/ 15 марта 2019

Я использую 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 Ответ

2 голосов
/ 16 марта 2019

Вы можете использовать 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);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...