2013-08-12 6 views
1

이미지의 절대 경로를 지정하면 내 프로젝트 scr 디렉토리에 이미지가로드되지만 이미지를로드 할 때 지정된 경로 또는 상대 경로에서 이미지를로드하려고하면 null 오류가 표시됩니다. t 이미지를 읽습니다.
나는 특별히 JFilechooser 디렉토리를 사용하여 경로를 얻었으며 .jpg 이미지 만 표시하고 파일 유형에 파일 목록을 제공하고 문자열 변수에 하나씩 이미지를 저장 한 다음 해당 변수를 사용하여 이미지를로드하려고합니다.지정한 경로에서 로딩 중 이미지

내 코드 :

java.lang.IllegalArgumentException가 : : 입력 == null이

final String fpath; 
final File dir = new File(""); 
final JFileChooser file; 
file = new JFileChooser(); 
file.setCurrentDirectory(dir); 
file.setFileSelectionMode(JFileChooser.DIRECTORIES_ONLY); 
file.showOpenDialog(contentPane); 
final File[] lofFile = file.getCurrentDirectory().listFiles(); 

for (int i = 0; i < a; i++) { 
    if (lofFile[i].toString().substring(lofFile[i].toString().lastIndexOf(".") + 1).equals("jpg")) { 
     az = lofFile[i].toString(); 
    } 
} 

private BufferedImage bg; 
bg = ImageIO.read(getClass().getResource(az)); 

이 예외가 발생합니다! from javax.imageio.ImageIO.read (Unknown Source)

어떤 도움을 주시겠습니까?

+0

JVM ** never ** prints "shows errors." _actual_ 오류 메시지 란 무엇입니까? –

+0

"열기"대화 상자 버튼에 입력하는 우편 번호 –

+0

@Sean Bright - java.lang.IllegalArgumentException : input == null! javax.imageio.ImageIO.read (알 수없는 소스)에서 오류가 발생했습니다, 죄송합니다. –

답변

2

Class#getResource은 파일 시스템에서 파일을로드 할 수 없습니다. ImageIO.read(az) 일 수 있습니다.

JFileChooser에서 File 개체를 얻을 수 있습니다. 그것을 사용하면 전혀 문제가 없습니다. 이유가 없으면 파일 이름에 문자열 조작을하지 마십시오. 특정 접미사를 필터링하는 것은 이유가 아닙니다.

+0

아니요 File type argument가 필요 없습니다. 파일 유형 인수 데이터 만 읽습니다. –

+0

+1,'URL'에 대해'File'을 사용하는 경우 :-) –

+0

@ user2659972 : 간단히'ImageIO '를 사용하십시오.read (fileReference)' –