我想要做的是當用戶選擇一個圖像,這個圖像必須被複制到一個特定的文件夾,然後使用該圖像。java NullPointerException exists Image
這是我用它來複製圖像:
Files.copy(
Paths.get("C:/../img.png"),
Paths.get("C:/../src/bgs").resolve(array[array.length-1]),
StandardCopyOption.REPLACE_EXISTING);
工作正常。問題是,如果我在這個命令後立即使用映像,我得到NullPointerException
(如果我在這兩個命令之間使用類似Thread.sleep(2500)
的東西,我沒有這個問題)。所以基本上我需要一種方法來檢查文件是否準備好使用。
到目前爲止,我用下面的代碼
// copy file
File f = new File(new_path);
sout(f.exists());
// use file
Image background = Toolkit.getDefaultToolkit().getImage(
getClass().getResource("/bgs/img.png"));
它打印真實的,但是當我使用它,我得到NullPointerException
再次..任何想法?
例外:
Uncaught error fetching image:
java.lang.NullPointerException
at sun.awt.image.URLImageSource.getConnection(URLImageSource.java:115)
at sun.awt.image.URLImageSource.getDecoder(URLImageSource.java:125)
at sun.awt.image.InputStreamImageSource.doFetch(InputStreamImageSource.java:263)
at sun.awt.image.ImageFetcher.fetchloop(ImageFetcher.java:205)
at sun.awt.image.ImageFetcher.run(ImageFetcher.java:169)
Files.copy不是Java的異步。檢查你是否實例化你的圖像錯誤。你可以發佈你的代碼實例化引起空指針的圖像嗎? – JTY
檢查編輯的問題。實例化沒有錯,因爲它在代碼中被多次使用..也許Files.copy和Toolkit。不要一起工作 –
你也可以發佈異常堆棧嗎?謝謝! – JTY