0

これを実装することは可能ですか?5 つのファイルのリストを持つ File foo[] があります。しかし、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];
    }
}

* list_fileListing.getSelectedIndex() は、JList から選択されたファイルのリストを保持します。* その理由は、JList で選択可能なファイルのリストを持っているからです。そのリストから、ユーザーがメールに添付するファイルを選択できるようにしたいと考えています。

4

3 に答える 3

1

非推奨になったため、Java7を使用しているようですJList.getSelectedValues()。代わりにgetSelectedValuesList()メソッドを使用してみてください。配列が必要な場合は、使用できますlist.getSelectedValuesList().toArray()

于 2012-04-05T04:50:26.147 に答える
1

あなたのコメントによると、インスタンスではなくインスタンスJListが含まれています。だからあなたは次のようなことができますStringFile

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() ] );

選択したインスタンスbarを含む配列を指す配列を設定しますFile

于 2012-04-05T06:01:41.890 に答える
1

JListを呼び出すgetSelectedValues()と、現在選択されているすべての項目を含む配列が取得されます。

Object[] selectedObjects = list_fileListing.getSelectedValues();

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

    // attach this file
}

これで十分ですか?

于 2012-04-05T03:34:52.520 に答える