Bibliotheken für Applet

deni74

Mitglied
Hallo,

schreibe gerade an einem Applet, welches als Upload-Tool für ein CMS-System fungieren soll. Das Applet hat links oben eine Baumstruktur der Festplattenverzeichnisse und rechts oben dann die Vorschau über die einzelnen Dateien die sich in den Ordnern befinden. Zur Zeit kann ich mit dem Applet leider nur jpg und png Dateien anzeigen.
Weiss jemand welche Bibliotheken ich einbinden muss um alle Dateien anzeigen zu können? Es soll die Anzeige von z.B. pdf, doc, xls, bmp, ..... möglich sein. Natürlich sollen auch Unterordner angezeigt werden.

Danke
Deni
 
Du brauchst da keine Bibliotheken für, scheinbar scheinst du es nur nicht richtig programmiert haben.

Was hast du denn benutzt? Einen FileFilter?
 
Also das Programm so wie es zur Zeit vorhanden ist, ist hauptsächlich vom Kollegen geschrieben worden. Er hat eine Positivliste in seinem Code in dem alles auftaucht was angezeigt werden soll. Er hatte das Problem das z.B. einer MP-3 Datei ein Symbol zugeordnet werden soll. Dafür brauchte er einen Filter, frag mich bitte nicht was für einen. Ausserdem ist der ganze Quatsch ziemlich langsam, wenn ich z.B. Dateien in den Upload-Bereich hinzufügen will die eine Gesamtgröße von ca. 3 MB haben dann braucht der schon 2 - 3 Sekunden. Ich rede hier nicht von dem eigentlichen Uploadvorgang. Gibt es da etwas als OpenSource welches man dann an sein Bedürfnisse anpassen kann?
 
So wie es hier aufgebaut ist, müsste das Prog ja wenigstens die Dateien anzeigen die hier expliziet im Code genannt werden, oder sehe ich das falsch? Hier mal die Methode, wo das behandelt wird, hoffe das man mir dann genaueres dazu sagen, komme echt nicht mehr weiter:

Code:
public void showPreview(String directory) {
		File f = new File(directory);
		File[] fList = f.listFiles();
		Gui.uploadPanel.jlStatus.setText("Bitte warten Sie während die Bilder in die Vorschau geladen werden.");
		Gui.uploadPanel.jlStatus.repaint();
		for (int i = 0; i < fList.length; i++) {
			try {
				String name = fList[i].getName();
				String ext = name.substring(name.lastIndexOf("."))
						.toLowerCase();
				int typ = 0;
				if (ext.equals(".jpg"))
					typ = Picture.JPG;
				if (ext.equals(".bmp"))
					typ = Picture.BMP;
				if (ext.equals(".gif"))
					typ = Picture.GIF;
				if (ext.equals(".png"))
					typ = Picture.PNG;
				if (ext.equals(".tif"))
					typ = Picture.TIF;
				if (ext.equals(".tar"))
					typ = Picture.TAR;
				if (ext.equals(".psd"))
					typ = Picture.PSD;
				if (typ != 0)
					addBildObjekt(fList[i].getAbsolutePath(), fList[i]
							.length(), typ);
			} catch (java.lang.StringIndexOutOfBoundsException e){
				
			}
			Gui.uploadPanel.jlStatus.setText(" ");
		}
	}
 
Du musst doch jetzt nur für alle weiteren Dateitypen die du noch zusätzlich angezeigt haben willst entsprechend ein if Konstrukt hinzufügen und weitere Typen mit entsprechenden Bildern definieren.

Mit einem
Code:
fList[i].isDirectory()
kannst du rausfinden ob es sich um einen Unterordner handelt und diesem auch ein Bild zuweisen.

Das das langsam ist glaube ich wohl. Aber versuche es erstmal die zusätzlichen Typen hinzuzufügen dann kann ich dir noch sagen wie es schneller geht.
 
Was mich bei der ganzen Sache wundert ist, das es nicht so funktioniert, wie es eigentlich soll. Das Applet zeigt mir jpg und png Dateien an. Sonst aber leider nichts. Nicht einmal ein pdf, obwohl ja dort das if Konstrukt für pdf existiert. Was mich auch verwundert, ich habe mal zu Testzwecken die if-Klausel für das jpg auskommentiert. Der zeigt mir das aber trotzdem an, dürfte er doch dann nicht mehr, oder?
 
Da ich nicht weiss wie der Rest des Programms aussieht kann ich dazu nicht mehr allzuviel sagen. Was macht denn die Methode addBildObjekt?
 
Es tut eigentlich nichts spektakuläres, erzeugt ein neues PreviewPicture Objekt und fügt das dem Panel hinzu das für die Vorschau verantwortlich ist. PreviewPicture fügt dem Vorschaubild einen Button hinzu und diverse Label.

Code:
public void addBildObjekt(String path, long filesize, int typ) {
		PreviewPicture pp = new PreviewPicture(path, filesize, typ);
		jpBilder.add(pp);		
		vDateinamen.addElement(path);
                jpBilder.revalidate();
		jpBilder.repaint();
	}
 
Versuch doch mal Schritt für Schritt den Weg durch das Programm mit dem Debugger nachzuvollziehen.
 
Sag mal, gibt es sowas in der Richting als OpenSource? Es sind noch etliche Fehler in dem Prog. Ich denke es wäre zeitlich ein Mehraufwand sich durch das Prog zu hangeln und Veränderungen durchzuführen oder sehe ich das falsch?
 
Zurück