当前位置: 首页 > 知识库问答 >
问题:

在StackPane中调整JavaFX ImageView大小

太叔凌龙
2023-03-14

我在StackPane中调整ImageView的大小时遇到了一个问题:如果StackPane是根容器,并且我将图像的高度和宽度绑定到StackPane,则一切正常。

<StackPane id="StackPane" fx:id="stack" prefHeight="400.0" prefWidth="600.0" style="-fx-background-color: lightgreen;" styleClass="mainFxmlClass" xmlns:fx="http://javafx.com/fxml" fx:controller="javafxapplication8.FXMLController">
  <children>
    <ImageView fx:id="image" fitHeight="100.0" fitWidth="300.0" pickOnBounds="true" preserveRatio="true" />
  </children>
  <stylesheets>
    <URL value="@fxml.css" />
  </stylesheets>
</StackPane>

但若我将这样的堆栈窗格放置在网格中,那个么图像的大小就无法正确调整。正如我所读到的,ImageView无法调整大小的问题。有什么方法可以调整它的大小吗?或者你能给一些建议如何调整ImageView的大小吗?

共有1个答案

柳俊彦
2023-03-14

听起来像是您试图为StackPane创建背景图像。在这种情况下,通过CSS应用图像可能比使用ImageView更好。

.stack-pane {
  -fx-background-image: url("flower.png");
  -fx-background-size: cover;
}

请参阅JavaFX CSS参考指南中区域规范的背景图像部分。

使ImageView本身可调整大小是一个未解决的主要问题。该问题链接到一个简单解决方法的代码-可调整大小的ImagePane包装图像以填充可调整大小的窗格。

 类似资料:
  • 下面是和,我试图使它尽可能简单。 黑色是名为的,其内部是名为的。我要做的是将中的的大小调整为的大小减去4。但当您调整窗口大小时,一切都失败了。 你要尝试的... 2)增加窗口的大小,然后慢慢减小。 为什么会这样?我有这个问题三个月了,但我找不到解决办法... 我也看过javafx-resize Canvas,当屏幕调整大小时,但这里的问题似乎是不同的... 如果我不手动设置画布的宽度和高度,它甚至

  • 我看到下面的链接-https://stackoverflow.com/questions/5302197/javafx-bug-is-there-a-way-to-force-repaint-this-not-a-single-threading-pr调用requestLayout似乎没有帮助。我还尝试在图中的各个节点上调用impl_updatePG和impl_transformsChanged。

  • 我想要一个堆栈窗格来模拟FullHD显示,即1920x1080。 下面是创建堆栈窗格并处理它的代码: DisplayPane构造函数方法 ControlButtonPane构造函数类方法: 任何帮助都会很好。

  • 问题内容: 我正在用d3.js绘制散点图。借助以下问题: 获取屏幕,当前网页和浏览器窗口的大小 我正在使用此答案: 这样我就可以将图适合用户的窗口,如下所示: 现在,我希望在用户调整窗口大小时可以调整图的大小。 PS:我的代码中没有使用jQuery。 问题答案: 寻找“响应式SVG”,使SVG响应式非常简单,您不必再担心大小。 这是我的做法: 注意: SVG图像中的所有内容都会随窗口宽度缩放。这包

  • 有dropzone的调整大小功能的例子吗。js?我真的不明白它是如何工作的,它说:“Resize是被调用来创建调整大小信息的函数。它将文件作为第一个参数,并且必须返回一个包含srcX、srcY、srcWidth和srcHeight的对象,对于trg*。这些值将被ctx.drawImage()使用。” 但是我真的不知道如何使用它。到目前为止,我正在服务器端调整图像的大小,但是我想在客户端这样做,我认

  • 我有下面的代码,它设置了一个特定大小的窗口。它还从外部URL加载图像。