我正在创建一个小程序。当谈到编程时,我有点迟钝,我刚刚开始使用NetBeans GUI生成器来帮助一个朋友编写代码。到目前为止发生的是:
- JFrame弹出一个不可编辑的文本字段、按钮、JList和空面板
- 用户单击按钮,它会提示他们选择一个目录
- 一旦用户选择了目录,程序就会从这个文件夹中加载所有文件(最终我会将其设置为只允许.jpg)
-
然后,程序将在文本字段中显示目录,并将这些文件的名称放在JList中。
问题:我4号有问题。我一直在努力让这件事继续下去。我让它正确显示目录。但我似乎无法让JList从文件数组中加载文件名。如果有人能帮忙,这里有一些代码。注意:我已经在这个按钮操作事件之外声明了一个名为listModel的DefaulListModel。代码没有生成任何错误,但在我单击加载后,JList仍然为空。text字段->目录按钮->jButton1文件选择器->fc字符串文件名数组->fileNames文件数组->selectedFilesJList->fileList
提前感谢!:)
private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) { JFileChooser fc = new JFileChooser(); fc.setFileSelectionMode(JFileChooser.DIRECTORIES_ONLY); fc.showOpenDialog(null); File[] selectedFiles = fc.getSelectedFiles(); directory.setText(fc.getSelectedFile().getAbsolutePath()); //this displays the path of the selected folder in the text field selectedFiles = fc.getSelectedFiles(); //this loop puts the files in the fileList... at least it should for(int i = 0; i < selectedFiles.length; i++){ listModel.addElement(selectedFiles[i]); } }
您的JFileChooser
设置为仅允许选择目录。我认为
selectedFiles = fc.getSelectedFiles();
返回一个空数组,这将解释为什么您在列表中没有看到任何内容。
你可能想用取代它
File directory = fc.getSelectedFile();
if ( directory != null && directory.isDirectory() ){
File[] subFiles = directory.listFiles();
for ( int i = 0; i < subFiles.length; i++ ){
listModel.addElement( subFiles[i] );
}
}