Hallo liebes Forum,
ich bin noch recht neu in Java und habe darum ein paar Verständnisprobleme.
Und zwar habe ich eine Klasse geschrieben, die aus einem gegeben Ordner alle mp3-Dateien rausholt und in eine Liste schreibt.
Nun möchte ich, dass die Liste erweitert werden kann. Wenn also durch den FileChooser ein Ordner ausgewählt wird, dann schmeißt der Constructor ja alle mp3-Dateien in die Liste. Wähle ich jetzt mit dem FileChooser einen weiteren Ordner aus, dann wird doch eine neue Instanz und damit auch eine neue Liste angelegt und meine Variable überschrieben. Wie bekomme ich es hin, dass ich die Liste immer weiter erweitern kann?
Hier noch Mal der ButtonListener, der den JFileChooser aufruft:
ich bin noch recht neu in Java und habe darum ein paar Verständnisprobleme.
Und zwar habe ich eine Klasse geschrieben, die aus einem gegeben Ordner alle mp3-Dateien rausholt und in eine Liste schreibt.
Java:
package model;
import java.io.File;
import java.util.ArrayList;
/**
* gets a directory and reads all files in it and its subdirectories
* fills an List with all mp3-file-path's
*/
public class ReadNewDirectory {
private ArrayList<String> mp3Locations;
/**
* constructor
* @param dir - the directory chosen in JFileChooser
*/
public ReadNewDirectory(File dir) {
this.mp3Locations = new ArrayList<String>();
this.listDir(dir);
}
/**
* get every file in a directory and its subdirectories
*/
private void listDir(File dir) {
File[] dirArr = dir.listFiles();
if (dirArr != null) {
for (int i = 0; i < dirArr.length; i++) {
if (dirArr[i].isDirectory()) {
listDir(dirArr[i]); // ruft sich selbst mit dem
// Unterverzeichnis als Parameter auf
}else {
if(dirArr[i].getName().endsWith("mp3"))
this.mp3Locations.add(dirArr[i].getAbsolutePath());
}
}
}
}
}
Nun möchte ich, dass die Liste erweitert werden kann. Wenn also durch den FileChooser ein Ordner ausgewählt wird, dann schmeißt der Constructor ja alle mp3-Dateien in die Liste. Wähle ich jetzt mit dem FileChooser einen weiteren Ordner aus, dann wird doch eine neue Instanz und damit auch eine neue Liste angelegt und meine Variable überschrieben. Wie bekomme ich es hin, dass ich die Liste immer weiter erweitern kann?
Hier noch Mal der ButtonListener, der den JFileChooser aufruft:
Java:
if(source == GUI.this.buttonNewSource) {
try {
GUI.this.fileChooser.showOpenDialog(null);
ReadNewDirectory topList = new ReadNewDirectory(GUI.this.fileChooser.getSelectedFile());
System.out.println(topList);
} catch (IOException e1) {
JOptionPane.showMessageDialog(null, "Loading file failed", "Fehler", 0, null);
}
}
Zuletzt bearbeitet: