Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/367.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何将数组中的某些文件元素复制到新的文件数组?_Java_Arrays_Swing_File_List - Fatal编程技术网

Java 如何将数组中的某些文件元素复制到新的文件数组?

Java 如何将数组中的某些文件元素复制到新的文件数组?,java,arrays,swing,file,list,Java,Arrays,Swing,File,List,这有可能实现吗?我有一个foo[]文件,它有5个文件的列表。但我只想将foo[0]和foo[3]复制到文件bar[]中,这样bar[]将只有2个元素 我的代码获取foo[]的长度,然后如果所选文件的索引等于i的索引,则将foo[i]添加到bar[i]。 这是我构建的可能代码: for(int i = 0; i < foo.length; i++){ if(list_fileListing.getSelectedIndex() == i){ bar[i] = foo

这有可能实现吗?我有一个foo[]文件,它有5个文件的列表。但我只想将foo[0]和foo[3]复制到文件bar[]中,这样bar[]将只有2个元素

我的代码获取foo[]的长度,然后如果所选文件的索引等于i的索引,则将foo[i]添加到bar[i]。 这是我构建的可能代码:

for(int i = 0; i < foo.length; i++){

    if(list_fileListing.getSelectedIndex() == i){
        bar[i] = foo[i];
    }
}
for(int i=0;i
*list\u fileListing.getSelectedIndex()保存JList中选定文件的列表。*
原因是我有一个文件列表,可以在JList中选择。从该列表中,我希望用户能够选择要附加到电子邮件的文件。

如果您在JList上调用
getSelectedValues()
,您将获得一个包含当前选择的所有项目的数组:

Object[] selectedObjects = list_fileListing.getSelectedValues();

for (int i = 0; i < selectedObjects.length; i++)
{
    File aFile = (File)selectedObjects[i];

    // attach this file
}
Object[]selectedObjects=list\u fileListing.getSelectedValues();
for(int i=0;i

这是否足够?

如果在JList上调用
getSelectedValues()
,您将得到一个包含当前选定的所有项目的数组:

Object[] selectedObjects = list_fileListing.getSelectedValues();

for (int i = 0; i < selectedObjects.length; i++)
{
    File aFile = (File)selectedObjects[i];

    // attach this file
}
Object[]selectedObjects=list\u fileListing.getSelectedValues();
for(int i=0;i

这就足够了吗?

看起来您正在使用Java7,因为您已经弃用了
JList.getSelectedValues()。尝试使用方法代替。如果您需要一个数组,可以使用
list.getSelectedValuesList().toArray()

因为您已经弃用了
JList.getSelectedValues()
,所以看起来您正在使用Java7。尝试使用方法代替。如果需要数组,可以使用
list.getSelectedValuesList().toArray()

根据您的注释,您的
JList
包含
字符串
实例,而不是
文件
实例。所以你可以做一些像

List<String> selectedFilesAsStrings = list_fileListing.getSelectedValuesAsList();
//selectedFilesAsStrings will never be null, but can be empty
List<File> selectedFiles = new ArrayList<File>( selectedFilesAsStrings.size() );
for( String fileName : selectedFilesAsStrings ){
  selectedFiles.add( new File( fileName ) );
}
File[] bar = selectedFiles.toArray( new File[ selectedFiles.size() ] );
List selectedfileasstrings=List\u fileListing.getSelectedValuesAsList();
//SelectedFileAssString永远不会为空,但可以为空
List selectedFiles=newarraylist(selectedfileasstrings.size());
用于(字符串文件名:SelectedFilesAsString){
选择文件。添加(新文件(文件名));
}
File[]bar=selectedFiles.toArray(新文件[selectedFiles.size()]);

这将设置指向包含所选
文件
实例的数组的
数组

根据您的注释,您的
JList
包含
字符串
实例,而不是
文件
实例。所以你可以做一些像

List<String> selectedFilesAsStrings = list_fileListing.getSelectedValuesAsList();
//selectedFilesAsStrings will never be null, but can be empty
List<File> selectedFiles = new ArrayList<File>( selectedFilesAsStrings.size() );
for( String fileName : selectedFilesAsStrings ){
  selectedFiles.add( new File( fileName ) );
}
File[] bar = selectedFiles.toArray( new File[ selectedFiles.size() ] );
List selectedfileasstrings=List\u fileListing.getSelectedValuesAsList();
//SelectedFileAssString永远不会为空,但可以为空
List selectedFiles=newarraylist(selectedfileasstrings.size());
用于(字符串文件名:SelectedFilesAsString){
选择文件。添加(新文件(文件名));
}
File[]bar=selectedFiles.toArray(新文件[selectedFiles.size()]);

这将设置指向包含所选
文件
实例的数组的
数组

变得清晰:您有一个JList,用户在其中选择一些文件,您希望第二个数组只包含这些文件?@orzechowskid Yes,因为我只希望所选数组可附加到电子邮件。为了更清楚地了解我的原因,请查看Rodricks george发布的如何向电子邮件发送附件的链接:我已经测试过了,但它会发送目录中的每个文件。为了更清楚,您有一个JList,用户可以在其中选择一些文件,您希望第二个数组只包含这些文件?@orzechowskid Yes,因为我只希望选择的阵列可以附加到电子邮件。为了更清楚地了解我的原因,请查看Rodricks george发布如何向电子邮件发送附件的链接:我已经测试过了,但它会发送目录中的每个文件。不起作用。。。我在线程“AWT-EventQueue-0”java.lang.NullPointerException中得到了这个错误异常,其中for循环是,加上“getSelectedValues()已弃用。不起作用…我在线程“AWT-EventQueue-0”java.lang.NullPointerException中得到了这个错误异常,其中for循环是,加上“getSelectedValues()已弃用。是的,我有Java7。那也没用。我在线程“AWT-EventQueue-0”java.lang.ClassCastException中得到:Exception:java.lang.String不能强制转换为[Ljava.io.File@チョコレート人, 这可能是因为您的列表包含字符串对象,您正在将其强制转换为文件。您能显示初始化列表的代码吗?是的,我有Java7。这也不起作用。我在线程“AWT-EventQueue-0”java.lang.ClassCastException中得到:Exception:java.lang.String不能强制转换为[Ljava.io.File@チョコレート人, 这可能是因为您的列表包含字符串对象,并且您正在将其强制转换为文件。您能显示初始化列表的代码吗?这是我想要的表单。我刚才必须修改我的其他错误。尽管如此,这对我帮助很大。谢谢!:)这是我想要的表单。我现在必须修改我的其他错误。尽管如此,这是他想要的我很高兴。谢谢!:)