2011-12-03 2 views
1

나는 이것들이 매우 멍청한 질문이라고 확신한다 ... 그러나 나는 결코 FileDialog를 다루지 않았고, 코딩 작업을 할 수없는 것처럼 보였다.자바 - FileDialog 질문/지원

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; 
    } 
} 

문제는 내가 폴더를로드 할 수 있도록하려는 것입니다 :

이 내가의 FileDialog이 튀어 나올 있기 때문에 입력 알고 내하는 JButton, 내 청취자입니다. 나는 그것에서 전화 번호부를 얻을 필요가있다. 그리고 1 파일을 클릭하고 "열기"를 누르더라도 numOfFiles는 변경되지 않습니다. 나는이 코드 때문에 이것을 안다.

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

파일을 열면 레이블이 바뀌지 않는다. "0"에서 "1"로 이동해야합니다. 당신이 날

+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 년 밖에 걸리지 않습니다. –