ImageView 未调整大小以适合

ImageView not resizing to fit

我将 ImageView 添加到 Pane(自定义对话框的一部分 window);但是在设置图像时,它被裁剪而不是调整大小。

这是组件的 FXML:

<ImageView fx:id="dialogArt" fitHeight="100.0" fitWidth="100.0" layoutX="180.0" pickOnBounds="true" preserveRatio="true">
    <viewport>
        <Rectangle2D height="100.0" width="100.0" />
    </viewport>
</ImageView>

并且在控制器中(因为图像会在显示时发生变化):

dialogArt.setImage(new Image(new FileInputStream("d:/wire.jpg")));
            
dialogArt.setFitWidth(100);
dialogArt.setFitHeight(100);

我知道 setFit 在这里是多余的,但我正在尝试不同的东西。对外汇还是比较了解的。

正如 DaveB 在评论中指出的那样:

Take out the viewport stuff. Once you put in a viewport, then it just scales the size of the viewport.

查看 viewport documentation 以了解为什么您不想在这种情况下使用视口:

  • If viewport is null, the entire image is displayed.
  • If viewport is non-null, only the portion of the image which falls within the viewport will be displayed.
  • If the image does not fully cover the viewport then any remaining area of the viewport will be empty.

但是,你想要显示完整的图像,所以你不应该定义视口。