gpt4 book ai didi

image - 如何使用位于当前工作目录之外的目录中的图像文件创建新的 Image()

转载 作者:行者123 更新时间:2023-12-02 08:31:40 26 4
gpt4 key购买 nike

我正在尝试在 TilePane 中列出图像。当我尝试创建图像 new ImageView("address"); 时出现错误,地址如下:

"file:D:/Chrysanthemum.jpeg/"

以上内容在当前工作目录之外的目录中。其他图像在类路径中。

这是 scec 中的其余代码:

public class TilePaneExample extends Application {

@Override
public void start(Stage primaryStage) {
VBox root = new VBox(30);

String[] imageResources = new String[]{
//loading images
"file:D:/Chrysanthemum.jpeg/",
"ImageResources/faviicon.png",
"ImageResources/jquery-logo.png",
"ImageResources/linkedin_32.png",
"ImageResources/loading1.png",
"ImageResources/twitter.png",
"ImageResources/twitter_32.png",
"ImageResources/wp.png",};

// Pane
TilePane tilePane = new TilePane();
tilePane.setHgap(5);
tilePane.setVgap(5);

for (final String imageResource : imageResources) {
Image image = new Image(getClass().getResourceAsStream(imageResource));
ImageView imageView = new ImageView(image);
imageView.setOnMouseClicked(new EventHandler<MouseEvent>() {
@Override
public void handle(MouseEvent event) {
File f = new File(imageResource);
String absolutePath = f.getAbsolutePath();
String folderPath = absolutePath.
substring(0, absolutePath.lastIndexOf(File.separator));
System.out.println(folderPath);
try {
// Desktop.getDesktop().open(new File("D:\\WAKILI\\WAKILIdb"));
Desktop.getDesktop().open(new File(folderPath));
} catch (IllegalArgumentException iae) {
System.out.println("File Not Found");
} catch (IOException ex) {
Logger.getLogger(TilePaneExample.class.getName()).log(Level.SEVERE, null, ex);
}
}
});
tilePane.getChildren().add(imageView);
}

root.getChildren().addAll(tilePane);
primaryStage.setTitle("TilePane Example");
Scene scene = new Scene(root, 300, 150);
primaryStage.setScene(scene);
primaryStage.show();
}

public static void main(String[] args) {
launch(args);
}
}

错误:

Caused by: java.lang.NullPointerException: Input stream must not be null

请帮忙。谢谢大家。

最佳答案

即使对于非类路径图像,您也正在使用 getClass().getResourceAsStream(imageResource),对于您未从类路径加载的情况,直接传递 URL 字符串:

Image image;
if(imageResource.startsWith("file:")) {
image = new Image(imageResource);
} else {
image = new Image(getClass().getResourceAsStream(imageResource));
}

关于image - 如何使用位于当前工作目录之外的目录中的图像文件创建新的 Image(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26090399/

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