public class BackgroundPanel extends JPanel {
File f;
BackgroundPanel(File file) {
f = file;
}
@Override
public void paintComponent(Graphics g) {
Image image;
try {
image = ImageIO.read(f);
}
catch (IOException e) {
image = null;
}
g.drawImage(image, 0, 0, 850, 1100, this);
}
}
저는 문제가 너무 어려워서 도움이되지 않기를 바랍니다. 이것은 항상 -specific- 파일에 대한 예외를 throw합니다. 내 Windows 폴더에서 샘플 jpg 중 하나를로드하고 잘로드됩니다. 그러나 jpg는로드 할 필요가 없습니다. 올바른 파일 경로를 사용하고 있고 canRead()를 사용하면 true를 반환합니다. 나는 왜 그것이 로딩되지 않을지 알 수 없다.ImageIO 항상 예외가 발생합니다.
제안 사항?
물론 paintComponent (또는 일반적으로 Swing 이벤트 디스패처 스레드)에서는 I/O를 수행하지 않아야합니다. 그러나 이는 예외의 원인이 아닙니다. 어떤 예외가 있습니까 (stacktrace)? 어쩌면 실패한 샘플 파일을 게시 할 수 있습니까? – haraldK