2017-03-16 6 views
0

からイメージアイコンの絶対パスを取得する:使用することによりJLabelの

jLabel1.getIcon().toString();

、オブジェクト「[email protected]」への参照のみを返します。

絶対パスではないので、どうすればそのアイコンの絶対パスを返すことができますか?例えば

C:/File/imageicon.jpg

+0

のtoString()は、常に文字列形式でオブジェクトを返します。 try()のようにtoString()を使わずに試してください:jLabel1.getIcon() –

+0

できません。画像とアイコンにはAPIがありません。一般に、ファイルシステム以外のコンテキストでも使用できます。 – ControlAltDel

+0

アイコンとファイルが無関係であるため、できません。ファイルを読み込んでアイコンを作成することもできますが、いくつかの方法(jarリソース、ソケット、メモリ内のバイト配列など)でも作成することができます。 –

答えて

-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

ありがとうございました。私はいくつかの間違いを犯しました。今、私はそれを修正します。@ヤニス –

関連する問題