0
각 이미지의 각 줄을 코딩하지 않고도 내 이미지 폴더를로드 할 수있는 방법을 만들고 싶었지만 오류가 계속 발생하여 시도했습니다. 이것을하는 다른 방법 및 나는 아직도 그것을 파악할 수 없다. 그것은 불가능한가?텍스트 폴더에서 이미지를 읽어 리소스 폴더의 이미지를로드합니다.
다음은 작동 방법입니다. 텍스트 파일 (이 경우 startUp.txt
)에 필요한 모든 이미지를 저장 한 다음 텍스트 파일에 링크 된 목록 (문자열)의 줄을 저장합니다. 루프를 사용하여 이미지를 가져 와서 링크 된 목록 (이미지)에 저장하여로드 할 모든 단일 이미지에 대한 코드를 작성할 필요가 없습니다.
여기 내 코드입니다 :
package com.game.task;
import java.awt.Image;
import java.io.File;
import java.io.FileNotFoundException;
import java.util.LinkedList;
import java.util.Scanner;
import javax.swing.ImageIcon;
public class imagesTest {
public LinkedList<Image> storeImages = new LinkedList<Image>();
private LinkedList<String> storeStrings = new LinkedList<String>();
public imagesTest() {
load();
readimage();
}
public void readimage() {
for(int index = 0; index < storeStrings.size(); index++){
Image temp = new ImageIcon(this.getClass().getClassLoader().getResource("/res/"+storeStrings.get(index))).getImage();
storeImages.add(temp);
}
}
private void load() {
File file = new File("Data/startUp.txt");
try {
Scanner read = new Scanner(file);
while (read.hasNextLine()) {
storeStrings.add(read.nextLine());
}
} catch (FileNotFoundException e) {
e.printStackTrace();
}
}
public static void main(String[] arsg) {
imagesTest t = new imagesTest();
}
}
예외 :
Exception in thread "main" java.lang.NullPointerException
at javax.swing.ImageIcon.<init>(ImageIcon.java:217)
at com.game.task.imagesTest.readimage(imagesTest.java:24)
at com.game.task.imagesTest.load(imagesTest.java:41)
at com.game.task.imagesTest.<init>(imagesTest.java:17)
at com.game.task.imagesTest.main(imagesTest.java:45)
내 의심의 여지가에있는 코드'의 getResource ("/ 입술 /"+ storeStrings.get (색인)))'. 이것으로부터'/ src /'를 제거해보십시오. [this] (http://www.mkyong.com/java/java-read-a-file-from-resources-folder/) 예제를 확인하십시오. – learningloop
링크를 가져 주셔서 감사하지만 그것은 내가 싫어하는 것을 피하려고합니다.로드하고 싶은 각 이미지에 대한 코드를 작성하고 싶지 않습니다. – swingBoris