gpt4 book ai didi

JavaFX 图像未在舞台上显示

转载 作者:塔克拉玛干 更新时间:2023-11-02 07:46:43 25 4
gpt4 key购买 nike

我已经尝试了很多次和几种方法,但我无法让我的形象如我所愿地在舞台上展示。我认为这可能与 java 查找资源的路径有关,但我不确定,因为我刚刚开始使用可视化库(在本例中为 JavaFX)。这是我的目录结构:

MyProject
|_assets
| |_img
| |_myImage.jpg
|
|_some
|_other
|_folders
|
|_src
|_ve
|_org
|_project
|_MyProject.java
|_StratPage.fxml
|_StartPageController.java

我需要检索要渲染的 myImage.jpg,我尝试了以下方法:

1) 纯 fxml 方法:

<ImageView
id="logo"
fx:id="logo"
fitHeight="99.0"
fitWidth="99.0"
layoutX="14.0"
layoutY="18.0"
pickOnBounds="true"
preserveRatio="true">
<image>
<Image url="@../../../../assets/img/myImage.jpg" />
</image>
</ImageView>

2) 同时使用 fxml 和 java。使用 fx:id="logo" 声明 ImageView 元素,并从 StartPageController.java 注入(inject)图像,如下所示:

public class StartPageController implements Initializable {

@FXML
private ImageView logo;


@Override
public void initialize(URL url, ResourceBundle rb) {
this.logo = new ImageView("file:../../../../assets/img/myImage.jpg");
}

}

两种方式都不会产生任何异常,我只是不显示图像。我不知道该怎么做。非常感谢您的帮助。

更新:

首先

我尝试放弃建议的目录结构,并将图像文件放在 StartPageController.java 的同一文件夹中。通过做

logo = new ImageView(new Image(getClass().getResourceAsStream("myImage.jpg")))

我没有遇到任何异常,但图像没有渲染,这表明我不是寻找资源,而是渲染图像。可能是缺少任何图书馆吗?我在 Windows 8 环境中,使用 Netbeans 8.0。再次感谢您的回答。

第二

我刚刚在 Netbeans 的项目属性中停用了打包和分发应用程序。现在图像渲染正确,但我不认为问题已解决,因为当我需要分发软件时它会重新出现。拜托,仍然需要帮助! :)

最佳答案

我检查了我自己项目中的代码,它适用于下面的代码片段。我已经根据您的示例进行了调整

 this.logo = new ImageView(new Image(getClass().getResourceAsStream("/assets/img/myImage.jpg")));

关于JavaFX 图像未在舞台上显示,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24260019/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com