Como definir uma imagem para o tamanho de um botão em JavaFX

J.erome:

Estou usando o JavaFX para a escola e eu preciso para exibir uma imagem em um botão quando eu clicar sobre ele. Meu problema é que a imagem é maior do que o botão e, em seguida, tudo é horrível. Eu vi múltiplos postar em como encaixar uma imagem a um botão e eu vim com esse código

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

Quando eu criar o uso botão I setPrefSize(50, 50);

Samuel Philipp:

Você pode usar o fitWidthPropertye fitHeightPropertydo ImageView e aprisioná-los ao widthPropertye heightPropertydo botão:

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

Isso fará com que o ImageView ter o mesmo tamanho que o botão de cada vez.

Isso pode fazer com que a imagem a ser esticado. Para evitar isso, você pode usar setPreserveRationa imagem:

img.setPreserveRatio(true);

Aqui está o código exemplo completo:

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);

Acho que você gosta

Origin http://43.154.161.224:23101/article/api/json?id=191324&siteId=1
Recomendado
Clasificación