0
文字列値のArrayListを1つのテーブルから使用しようとしていますが、文字列の末尾が ".tif"か ".tiff"結果の文字列を新しいテーブルに転送します。ただし、このメソッドを呼び出すと、新しいテーブルは最初に変更された文字列のみを受け取ります。私は自分のロジックに何が間違っているのか分かりません。元のテーブルの最初の要素は、条件が満たされているかどうか( ".tif"または ".tiff"で終わる)、そこから文字列変更され、ArrayList fDataに追加され、次のテーブル値に反復されます。なぜfDataに含まれる複数の要素が返されないのか理解できません。Java - forループのArrayList <String>メソッドは1つの要素を返します
public ArrayList<String> getTableData() {
StringBuilder str = new StringBuilder();
String fString = null;
ArrayList<String> fData = new ArrayList<String>();
while(filePaths != null) {
int size = filePaths.size();
for (int i = 0; i <= size; i++) {
String pathName = filePaths.get(i);
if (pathName.endsWith(".tif")) {
int pathLength = pathName.length();
str = new StringBuilder(filePaths.get(i));
str.insert(pathLength - 4, "_Data");
fString = str.toString();
fData.add(fString);
tableModel2.addRow(new String[] { fString });
return fData;
}
else if (pathName.endsWith(".tiff")) {
int pathLength = pathName.length();
str = new StringBuilder(filePaths.get(i));
str.insert(pathLength - 5, "_Data");
fString = str.toString();
fData.add(fString);
tableModel2.addRow(new String[] { fString });
return fData;
}
}
tableModel2.fireTableDataChanged();
}
return null;
}
`
ありがとう、ありがとう!リターンステートメントの私の理解はオフにしなければならない、私は各反復の結果は、それが次の反復の前に "格納"することができるように返さなければならないと思ったが、それは論理が間違っているようだ。 – Rosie