2012-02-04 10 views
0
public class saveButtonListener implements ActionListener{ 
     public void actionPerformed(ActionEvent ev){ 
     JFileChooser chooser= new JFileChooser(); 

      String s=(String)searchedResultArea.getSelectedValue();// ??? 
    } 
    } 
    Object s=searchedResultArea.getSelectedValue(); 

ユーザーがファイルに指定したいくつかの画像のファイル名を保存してJListに表示するプログラムを開発しました。このフォーマットで保存します。文字列をファイルに変換する方法名前

E:\something\something\something.jpg 

この値を使用して画像を開く必要があります。私の問題は、この文字列を適切なファイル名に変換することができないということです。

E:\\something\\something\\something.jpg 

私はあなたがポイントを得たと思います。 2つのバックスラッシュが必要です。どうすればいいのですか?

答えて

3

"\"は、ソースコードの "\"文字をエスケープするために使用されます。 Windiowのパス区切り文字はまだ "\"です。ユーザー入力からのパスを取得した場合、ここでは何も行いません。なりません。この作品

5

何かに変換する必要はありません。文字列は1つのスラッシュでうまくいきます。 2番目のスラッシュは、コードに手動で入力する場合にのみ必要です。

-1

:Javaでは

String fileName = // from JList 
File f = new File(fileName); 
+0

ファイルファイル=新しいファイル(searchedResultArea.getSelectedValue())を行い、ファイル名を変換するには、私はこれを試したが、これは動作しません。どちらの方法を使うべきですか? –

2

は、ファイル名を表現する適切な方法は、「フォワード」スラッシュ(「/」)であり、それは独立して、オペレーティングシステムの動作します。 "バックスラッシュ"( '\')はJavaのファイルを処理するときに無視されるべきWindowsの異常です。

「スラッシュ」を使用してください。

filename = filename.replaceAll("\\", "/"); 

(単一のバックスラッシュは特殊文字をエスケープするためにJavaで使用されているので、あなたは二重のバックスラッシュが必要)

関連する問題