からイメージアイコンの絶対パスを取得する:使用することによりJLabelの
jLabel1.getIcon().toString();
、オブジェクト「[email protected]
」への参照のみを返します。
絶対パスではないので、どうすればそのアイコンの絶対パスを返すことができますか?例えば
:C:/File/imageicon.jpg
からイメージアイコンの絶対パスを取得する:使用することによりJLabelの
jLabel1.getIcon().toString();
、オブジェクト「[email protected]
」への参照のみを返します。
絶対パスではないので、どうすればそのアイコンの絶対パスを返すことができますか?例えば
:C:/File/imageicon.jpg
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 */
}
回答を編集して、コードが質問にどのように回答するかについてのテキストを入力してください。おそらく、その出力を伴う例を追加してください。また、コードを再フォーマットすることを検討してください。 – Yannis
OPは 'toString()'の結果が "[email protected]"となります。 'toString()'の結果がファイルパスになったとしたら、どのように正しいのでしょうか?まあ、あなたは両方ですが、コードの違いと 'toString()'呼び出しが異なる動作をする理由については説明しません。 – Tom
ありがとうございました。私はいくつかの間違いを犯しました。今、私はそれを修正します。@ヤニス –
のtoString()は、常に文字列形式でオブジェクトを返します。 try()のようにtoString()を使わずに試してください:jLabel1.getIcon() –
できません。画像とアイコンにはAPIがありません。一般に、ファイルシステム以外のコンテキストでも使用できます。 – ControlAltDel
アイコンとファイルが無関係であるため、できません。ファイルを読み込んでアイコンを作成することもできますが、いくつかの方法(jarリソース、ソケット、メモリ内のバイト配列など)でも作成することができます。 –