File Array an Jlist übergeben

c_sidi90

Top Contributor
Hallo, ich habe ein Programm geschrieben welches eine rekursive Methode enthält alle Dateien in einem Benutzerdefinierten Pfad auszugeben. Bislang erfolgt die Ausgabe auf eine jTextarea, was ich aber nicht gut finde da diese nicht zu sortieren ist(oder nur schlecht) Weist einer wie ich das File Array in dem die Directorys gespeichert werden an eine jList übergeben werden koennen (also add Items von File Array)

Ich finde dafür leider keine Lösung.

Hier der Source meiner Methode

Java:
	private void Verzeichnisse(String StartVerzeichnis){
		File dir = new File(StartVerzeichnis); 
		
	
		File[] files = dir.listFiles();  //speichert die Pfade in das File Array files

		ListModel DateiListenModell = 
			new DefaultComboBoxModel(files);//Items aus Files werden hinzugefügt
		jList1.setModel(DateiListenModell);//weist der JList dieses Model zu
		
		if (files != null) { 	
			for (int i = 0; i < files.length; i++) {
				jList1.add?!( files[i].getAbsolutePath()); //<<<HIER HILFE!
				if (files[i].isDirectory()){					
					Verzeichnisse(files[i].getAbsolutePath());
				}
			}
		}
		
	}

Danke
 
Zuletzt bearbeitet:
Ich verstehe noch nicht so ganz, wo dein Problem liegt. mit
Code:
listModel.addElement(element);
fügst du Elemente dem Model hinzu.

Wo genau hängt es denn dabei?
 
k wenn ich einfach in der for schleife den übergabe befehl weglasse übernimmt er Pfade in die jList1 aber komischer weise nur teilweise.
 
Sowas?
Java:
	public static void main(String[] args) {
		List<File> erg = new Demo().getFilesRecursive(new File("[Dein Verzeichnis]"));
		for(File f : erg)
			System.out.println(f.getAbsolutePath());
	}

	public List<File> getFilesRecursive(File f){
		List<File> erg = new ArrayList<File>();
		findFiles(f, erg);
		return erg;
	}

	private void findFiles(File f, List<File> erg){
		if(f.isFile())
			erg.add(f);
		else {
			File[] fArr = f.listFiles();
			for(File _f : fArr)
				findFiles(_f, erg);
		}
	}
 
Ich möchte jedoch meinen Aufbau beibehalten deine Methode ist für meinen restsource nicht passend. Ich möchte gerne die von mir oben gepostete Methode ergänzen indem ich der Liste bzw dem von mir erstellten Listenmodel die verzeichnisse aus dem Filearray übergeben.
 
dann verwende nicht das Interface ListModel sondern direkt die konkrete Klasse --> DefaultComboBoxModel. Das Interface enthält keine add Methoden. Die konkrete Klasse aber schon.
 
Habs hinbekommen, die Lösung war eigentlich nicht zu übersehen, ich habe das neue jListmodell vor der For-schleife der jList hinzugefügt, dies muss aber nach der vorschleife geschehen. Mein Fehler :S

Danke für die HIlfe
 
hehe ^^ jau, hier sind immer soviele Threads, die man sich durch liest worüber man sich dann doch schon Gedanken zu einer Lösung macht und dann stellt man fest, dass das ja schon gelöst worden ist...

viele Grüße
 

Zurück
Oben