2011-12-03 14 views
1

これは確かにかなりの質問です...しかし、私はFileDialogを扱うことがなかったので、コーディングがうまくいかないようです。Java - FileDialog質問/支援

これは私がのFileDialogがポップアップするので、それが入る知っている、私のJButtonのための私のリスナーです:

public static class FileListener implements ActionListener{ 
    public void actionPerformed(ActionEvent e) { 
     FileDialog fd = new FileDialog(new Frame(), "Pick Folder"); 
     String dir = "C:/"; 
     fd.setDirectory(dir); 
     fd.setAlwaysOnTop(true); 
     fd.setMode(FileDialog.LOAD); 
     fd.setVisible(true); 
     String pickedFileDir = fd.getFile(); 
     File folder = new File(pickedFileDir); 
     File[] listOfFiles = folder.listFiles(); 
     numOfFiles = listOfFiles.length; 
    } 
} 

問題は、私はFOLDERをロードできるようにしたいということです。私はそれからディレクトリを取得する必要があります。そして、1つのファイルをクリックして「開く」を押しても、numOfFilesは変更されません。私はこのために、このコードのを知っている:

JLabel number = new JLabel("Files found: " + numOfFiles); 

ラベルは、ファイルを開いた後に変更されません。 「0」から「1」になるはずです。あなたは私がこれを理解を助けることができる場合に感謝

(yaのためにそこには明らかに「ベストアンサー」:))

+6

JFileChooserを見てください。それはあなたの人生を楽にします。チュートリアル[here](http://docs.oracle.com/javase/tutorial/uiswing/components/filechooser.html)を参照してください。 – Paul

答えて

0

代わりのJFileChooserを使用する必要があります。ここにあなたの例があります:

JFileChooser jfc = new JFileChooser(); 
jfc.setFileSelectionMode(JFileChooser.DIRECTORIES_ONLY); 
jfc.setCurrentDirectory(new File("C:/")); 
if (jfc.showOpenDialog(null) == JFileChooser.APPROVE_OPTION) { 
    File selectedFile = jfc.getSelectedFile(); 
    File[] listOfFiles = selectedFile.listFiles(); 
} 
+0

うわー。それははるかに簡単に見えます。ありがとうございました(私がファイルを使って行った最後の時間は2年前と同じでしたが、当時はJFileChooserについて聞いたこともありません) これは機能します。しかし、数字は変わらない。何とかJLabelを更新する必要がありますか? – Brandon

+2

-1、PaulはSwingチュートリアルへのリンクを示しました。このチュートリアルでは、20分前にJFileChooserを使用する方法を示しています。したがって、この質問はコメントで回答され、重複した回答は必要ありませんでした。チュートリアルへのリンクは、a)質問に答えるため、b)ポスターを他の参考文献にアクセスして将来役立つことができるため、好ましいです。 – camickr

+0

*「ファイルを使って何かをやったのは2年前と同じでした...私はJFileChooserについて聞いたことがありません」*あなたが住んでいた岩の下からクロールする必要があります。 'JFileChooser'は始めからSwingの一部です。 Swingは1998年にリリースされた[Java 1.2](http://en.wikipedia.org/wiki/Java_1.2#J2SE_1.2_288December_8.2C_1998.29)のJ2SEに導入されました! 2009年にファイルを使って作業していた場合、スウィングの不思議が(あなたにフィルタリングされないように)失敗するのは11年しか残っていません。 –