image - JavaFx 图像大小调整

标签 image javafx

我有一个带菜单顶部的边框 Pane ,左侧有一个网格,中间有一个图像。我希望图像与边框中心的大小相同,因为现在图像越过我的网格。

我试过这个:

           imageView.fitWidthProperty().bind(box.widthProperty());

其中 imageView 是我的图像的名称,而 box 是 BorderPane 对象。谢谢。

最佳答案

请参阅 JavaFX 功能请求 RT-21337 Add ImageViewPane and MediaViewPane controls 其中包含示例的代码附件 ImageViewPane将调整 ImageView 大小的实现它包含该区域可用的区域。要获得所需的行为,您可能还需要实现 computeMinWidthcomputeMinHeightImageViewPane以便它们返回零而不是图像的最小尺寸。

now the image goes over my grid



这是因为您的图像的最小尺寸当前大于 BorderPane 中心的可用空间。 :

BorderPane does not clip its content by default, so it is possible that childrens' bounds may extend outside its own bounds if a child's min size prevents it from being fit within it space.



防止中心内容溢出边界的一些潜在替代方案:
  • 手动设置 clip在中心节点上,以防止它溢出边界。
  • 动态调整 ImageView 的大小如 ImageViewPane上面链接的示例。
  • 放置 ImageViewScrollPane .
  • 使用 css -fx-background-image attributes显示和动态调整图像大小,而不是使用 ImageView .
  • 在设置边框内容之前先设置边框的中心,这样它将在边框内容下方呈现。
  • 使用与边界 Pane 不同的构造(例如 HBoxes、VBoxes 等),当节点大于可用显示区域时,它们不会与节点重叠。

  • I tried this: imageView.fitWidthProperty().bind(box.widthProperty());



    我从提供的代码中猜测这是行不通的,因为图像的封闭框是某种可动态调整大小的 Pane ,因此框的最小宽度由图像的宽度决定,反之亦然。

    关于image - JavaFx 图像大小调整,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15951284/

    相关文章:

    java - 桌面应用程序上的一次性 Java 配置文件

    java - 在javafx TableView中显示外键

    java - 相对路径不起作用

    JavaFX - 当文本字段具有焦点时加速器不工作

    c - 使用 ffmpeg 判断文件是视频还是图像

    JavaScript:给定一个图像 URL 列表,如何显示第一个未损坏的图像?

    facebook - 从FB自己的CDN加载FB logo

    java - TableView 中带有额外元素的 ObservableList

    image - 如何概括 JPEG 压缩中的量化矩阵?

    图像无法在 IE7 中呈现(但在 IE6/Firefox 中工作正常)