我正在创建一个小程序。在编程时我有点像菜鸟,我只是开始使用NetBeans GUI构建器来帮助朋友使用他的代码。到目前为止发生的事情是:
程序将在文本字段中显示目录,并将这些文件的名称放在JList中。
问题: 我遇到了麻烦4.我一直在努力让这件事情继续下去。我已经得到它正确显示目录。但我似乎无法让JList从文件数组加载文件名。如果有人可以提供帮助,这里有一些代码。 注意:我已经在此按钮操作事件之外声明了一个名为listModel的DefaulListModel。代码没有生成任何错误,但单击加载后JList仍为空。 文本字段 - >目录 按钮 - >的jButton1 文件选择器 - > FC 文件名的字符串数组 - >文件名 文件数组 - > selectedFiles JList - > 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]);
}
}
答案 0 :(得分:2)
您的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] );
}
}