2017-09-25 19 views
0

이미지를 추가하려면이 코드를 사용하십시오.이미지가 JFrame에 표시되지 않습니다 - Java 응용 프로그램

JLabel label = new JLabel(new ImageIcon(getClass().getResource("/bin/image.png"))); 

화상 위치 : Application/src/bin/image.png.

문제는 내 컴퓨터 디버깅 모드로 이미지를 나타낸다. 그러나 깨끗한 프로젝트를 만든 후에 다른 컴퓨터에 폴더 (Application/dist)를 복사하면 이미지가 표시되지 않습니다. 다른 컴퓨터에서 이미지를 어떻게 표시합니까?

+0

Java 프로젝트에 리소스 (이미지, 사운드 비트 등)를 포함 할 가능성이 있음] (https://stackoverflow.com/questions/3721706/embedding-resources-images-sound-bits-etc) -into-a-java-project-then-use-those) – MC10

+0

Jar 파일의 압축을 풀고 리소스가 포함되어 있는지 확인하십시오. 그렇지 않은 경우, 처음에 Jar 파일을 생성하는 방법에 의해 결정되는 내용을 포함하는 방법을 알아야합니다. – MadProgrammer

답변

0

getClass(). getResource는/src/package 내에서 파일을 반환하고 빌드 후 bin에 번들로 제공됩니다.

변경에만 프로젝트 구조 다른 사람이 자원을 복사 (또는 새 항목을 저점 소스를 추가)는 전체 자격을 갖춘 자원 경로 이름을 사용하고로드해야 할 경우

에서로드 할 /image.png에 대신 파일로.

또한 Eclipse 또는 FatJar를 통해 리소스를 내 보내야합니다. 트로프 Ant는 알지 못합니다.

getClass(). getResource를 사용하여 리소스를 가져 와서 일부 문제가 발생했지만 대신 getClass(). getClassLoader(). getResource를 사용했습니다.

+0

getClass(). getResource'는 현재 클래스 경로 내에서 리소스를 반환합니다. 'src' 디렉토리에 저장합니다 - 일부 IDE는'src' 디렉토리에 저장된 패키지 자원을 제거하지만'src' 경로 요소는 제거합니다. * "프로젝트 구조에서로드하기 위해 /image.png 만 변경"* - 입력에 따라'/ bin/image.png'가 될 것이지만 Jar 생성 방법에 대한 세부 사항은 없지만, – MadProgrammer

+0

/src /는/bin /에 컴파일 된 클래스를 생성하고 루트는 '/'가됩니다 –

+0

어떤 JVM/빌드 시스템에서 사용 하시겠습니까? 'bin'은 시스템이 어떻게 달성 되었는가에 따라 다른 어떤 디렉토리/패키지 일뿐 아니라'/ bin/... '또는 다른 디렉토리가 될 수 있습니다 - 대부분의 IDE의 기본 작업'/ bin/...'더 안전한 내기입니다 - OP가 Jar 패키지 방법에 대한 자세한 내용을 준비하지 않는 한 - 모든 것은 단지 가정과 추측입니다. – MadProgrammer