JavaFX-无法加载图片网址

时间:2019-03-09 09:43:10

标签: java javafx

代码行nr.2正在工作,但是我无法获取代码nr.1来工作。 它什么也没显示。

1)图片图片=新图片(“ https://www.countryflags.io/no/shiny/64.png”);

2)图片图片=新图片(“文件:/Users/macbookpro/Desktop/64.png”);

img1.setImage(image);

System.out.println(image.getWidth());

1 个答案:

答案 0 :(得分:1)

您是否尝试过打印图像引发的异常?看起来就是这样:

java.io.IOException: Server returned HTTP response code: 403 for URL: http://www.countryflags.io/no/shiny/64.png

只有在将error属性设置为true的情况下,getException()方法才包含非null值,在这种情况下,它包含导致图像加载失败的异常。

有关403响应代码的更多信息,请查看此链接https://httpstatuses.com/403

更新:您可以通过以下方式使它能够通过浏览器(例如Firefox)模拟对URL的访问:

String imgUrl = "https://www.countryflags.io/no/shiny/64.png";
URLConnection connection = new URL(imgUrl).openConnection();
connection.addRequestProperty("User-Agent", "Mozilla/5.0 (Windows NT 6.1; WOW64; rv:25.0) Gecko/20100101 Firefox/25.0");
Image image = new Image(connection.getInputStream());

通过这种方式,您应该能够加载图像,并且实际上image.isError()将返回false。