2010-03-20 3 views
6

다음 코드는 NetBeans에서 실행할 때 잘 작동합니다.Jar 파일의 아이콘 이미지 설정

this.getFrame().setIconImage(Toolkit.getDefaultToolkit().getImage("PlagiaLyzerIcon.png")); 

그러나 일단 Jar 파일에 빌드되면 아이콘이 사라집니다.

누구나 문제가 무엇인지 알 수 있습니까? 나는 아이콘 이미지를 루트 디렉토리에 저장해야한다는 것을 알았지 만, JAR로 컴파일 한 후에 아이콘이 사라졌습니다. 어떤 도움

감사합니다 ...

안녕 모두, 문제는

this.getFrame().setIconImage(Toolkit.getDefaultToolkit().getImage(getClass().getClassLoader().getResource("plagialyzer/resources/PlagiaLyzerIcon.png"))); 

이 그것은 한 번 jar 파일로 컴파일 작품, 다음 코드로 해결되었다.

답변

7

사용.

참고 :

이미지가 jar 파일의 루트에있는 경우이 줄에만 작동합니다. 그렇지 않으면, 당신은 문자열의 폴더를 지정해야합니다 :

getResource("yourfolder/PlagiaLyzerIcon.png") 
+0

폴더의 경로를 다시 설정하더라도 프로젝트에서는 작동하지만 Jar 파일에서는 작동하지 않습니다. 그리고 코드에 어떤 문제가 있는지 잘 모르겠습니다. 생성자 문제? –

+0

는이 코드는, this.getFrame() 작동하지 않습니다 의미 setIconImage. ( 새로운 이미지 아이콘 (getClass() getClassLoader를()의 getResource ("PlagiaLyzerIcon.png")) ..) –

+1

이제 문제가 생깁니다 ... this.getFrame(). setIconImage (새 이미지 Icon (getClassLoader(). getResource ("PlagiaLyzerIcon.png")). getImage()). 해야합니다. – Hector

0

JAR을 내보내기 전에 Netbean 옵션에서 아이콘의 빌드 경로를 지정 했습니까? 이클립스에서는이 빌드 디렉토리에 소스 폴더를 추가하여이 작업을 완료 할 수 있습니다.이 소스 코드는 screenshot과 같습니다. Netbeans에서 같은 방식이어야합니까?

2

Netbeans IDE의 경우 Ant가없는 독립 실행 형 파일을 실행하는 경우와 다른 클래스 경로가 있기 때문입니다.

클래스 경로는 다음과 같습니다 : /project/build/classes/ 프로젝트 루트 /project/

은 넷빈즈 프로젝트 위치 /project/에서 가정합니다. 아이콘이 /project/myicons/에 저장되면 /project/도 클래스 경로의 일부입니다. 그러나 프로젝트를 빌드 할 때 /project/build/classes/의 파일 만 결국 jar 파일에 저장되며이 파일은 /projcet/src/에서 "빌드"됩니다.

솔루션 : /project/src/myicons/

를 또는 프로젝트를 마우스 오른쪽 단추로 클릭 (당신의 소스에 /project/myicons/ 폴더를 추가 -> 속성 -> 소스 -> 폴더를 추가

는 소스 패키지로 아이콘을 이동

가)

this.getFrame().setIconImage(
new imageIcon(getClass().getClassLoader().getResource("PlagiaLyzerIcon.png")) 
); 

대신

+0

@Pindatjuh, 실제로 제안한대로 폴더로 이동했지만 코드는 this.getFrame() .setIconImage (Toolkit.getDefaultToolkit(). getImage() "PlagiaLyzerIcon.png"))); 프로젝트 루트 디렉토리에서만 작동하는 것 같습니다. –

1

고마워요 ...

다음

나를 위해 작동 코드를 !!!!

BufferedImage image = null; 

    try { 
     image = ImageIO.read(getClass().getClassLoader().getResource("images/frame.png")); 
    } catch (IOException e) { 
     e.printStackTrace(); 
    } 


    super.setIconImage(image); 
0

자신과 같은 NetBeans를 사용하면 프로젝트 폴더의 src/디렉토리에 로고 (내 경우 mylogo.png)를 넣기 만하면됩니다. 아이콘의 품질을 최상으로 유지하려면 크기가 32 x 32 픽셀인지 확인하십시오. .ico 이미지를 내 JFrame 아이콘으로 설정할 수는 없지만 .png는 잘 작동했습니다.JFrame의 확장으로 , 내가 직접 내 항아리 아이콘을 설정합니다

Image getIcon() 
{ return Toolkit.getDefaultToolkit().getImage(getClass().getClassLoader().getResource("mylogo.png")); } 

setIconImage(getIcon()); 
청소 후

과 항아리를 구축, jar 파일 아이콘이 여전히 (여전히 항아리의 기본 아이콘) 변경되지 않습니다하지만 당신은 실행할 때 항아리는 파일 제목 표시 줄과 작업 표시 줄의 아이콘이 사용자 정의 아이콘이됩니다. 바로 가기를 만들고 그 바로 가기에 대한 아이콘을 변경하여 jar 파일 아이콘을 변경할 수 있습니다. 바로 가기 아이콘에 대한 최상의 해상도는 512 x 512 픽셀입니다. .