2017-03-16 3 views
0

로부터 이미지 아이콘 절대 경로 얻기 :사용하여 JLabel의

jLabel1.getIcon().toString();

시 개체 "[email protected]"만 참조를 반환한다;

절대 경로가 아니므로 아이콘의 절대 경로를 어떻게 반환 할 수 있습니까? 예를 들어

: C:/File/imageicon.jpg

+0

toString()는 항상 문자열 형식의 개체를 반환합니다. jLabel1.getIcon() –

+0

같이 할 수없는 toString()없이 시도해보십시오. 이미지 및 아이콘에는 API가 없으며 일반적으로 파일 시스템 이외의 컨텍스트에서 사용할 수 있습니다. – ControlAltDel

+0

아이콘과 파일이 관련이 없기 때문에 할 수 없습니다. 파일을 읽음으로써 아이콘을 만들 수 있지만 다른 여러 방법 (병 리소스, 소켓, 메모리의 바이트 배열 등)을 사용하여 아이콘을 만들 수도 있습니다. –

답변

-1
JLabel jLabel1 = new JLabel(); 
    jLabel1.setIcon(new ImageIcon(getClass().getResource("/lk/edu/ijse/examsimulator/img/Hand With Pen_36px.png"))); 
    if (jLabel1.getIcon() != null) { 

     Icon iconPath = jLabel1.getIcon(); 
     System.out.println(iconPath.toString()); 
     /* print  
     * file:/E:/Quick%20access/Documents/NetBeansProjects/ExamSimulator/ExmClientAdmin/build/classes/lk/edu/ijse/examsimulator/img/Hand%20With%20Pen_36px.png 
     */ 

     String absolutePath = iconPath.toString().replaceFirst("file:/", ""); 
     absolutePath = absolutePath.replaceAll("%20", " "); 
     System.out.println(absolutePath); 
     /* print 
     * 
     * E:/Quick access/Documents/NetBeansProjects/ExamSimulator/ExmClientAdmin/build/classes/lk/edu/ijse/examsimulator/img/Hand With Pen_36px.png 
     * 
     * it's my image absolute path */ 
    } 
+0

코드가 질문에 어떻게 대답하는지에 대한 텍스트를 포함하도록 답을 편집하십시오. 아마도 출력 결과가있는 예제를 추가하십시오. 또한 코드를 다시 포맷 해보십시오. – Yannis

+0

OP가 'toString()'결과가 "[email protected]"가된다고 말합니다. 당신은'toString()'이 파일 경로를 생성한다고 말합니다. 음, 둘 다 있지만 코드의 차이점과 왜'toString()'호출이 다르게 작용하는지 설명하지는 않습니다. – Tom

+0

고마워 ......... 그것에 나는 실수가 있었다. 지금 나는 그것을 교정한다. @ Yannis –