file open dialog extension filter will nicht so richtig

Tinobee

Mitglied
hallo leute,

ich erstelle gerade ein gui mit menüleiste und entsprechenden items. für den fileopen dialog habe ich mir diesen code erstellt:
PHP:
public void widgetSelected(final SelectionEvent sev) {
				
				String[] filterExt = { "XML-Document (*.xml)",
						"Microsoft-Word-Document (*.doc)",
						"Microsoft-Word-Document (*.rtf)", "Alle Dateien (*.*)" };
				FileDialog fd = new FileDialog(shell, SWT.OPEN);
				fd.setText("Open");
				fd.setFilterPath("C:/");				
				fd.setFilterExtensions(filterExt);
				String selected = fd.open();
				
				//- Testausgabe --- entfernen, wenn entsprechendes Event vorhanden
				System.out.println(selected);
			}
der dialog geht auch auf. allerdings werden wenn ich in einen ordner mit .xml dokumenten wechsele keine solchen angezeigt. erst wenn ich die extension auswahl auf "alle dateien" stelle, bekomme ich was zu sehen.

hat jemand ne idee, woran das liegen könnte?
 
Ich bin mir hierbei nicht ganz sicher, aber ist es zulässig Beschreibungen mit dem filetyp in klammern anzugeben?

Versuch das ganze mal mit einem abgespecktem Filter der nur die Endungen enthält:

Java:
                String[] filterExt = { "*.xml", "*.doc","*.rtf", "*.*" };

Ich habe leider im moment kein Eclipse auf diesem Rechner, sonst würd ich es kurz selbst Testen.

Sollte das nicht helfen, kannst du ja mal die fd.setFilterExtensions(filterExt); nach FileDialog fd = new FileDialog(shell, SWT.OPEN); und noch vor dem setzen des Pfades einfügen. ( Möglicherweise liegts auch daran)

Gruss

Ben
 
ok, damit geht es jetzt. aber wie macht man das wie z.b. bei ms word, dass man hinter den extensions direkt noch das programm mit angeben kann?
 
Hab kurz gegoogelt und mich schlau gemacht, du kannst für die filterextensions die filternamessetzen (in der reihenfolge in der du die namen eingibst in der wird die extension erkannt):

Java:
	dialog.setFilterNames (new String [] {"Batch Files", "All Files (*.*)"});
	dialog.setFilterExtensions (new String [] {"*.bat", "*.*"}); //Windows wild cards


bei dir also:

Java:
	fd.setFilterNames (new String [] { "XML-Document (*.xml)",
                        "Microsoft-Word-Document (*.doc)",
                        "Microsoft-Word-Document (*.rtf)", "Alle Dateien (*.*)"});

Sollte das nicht gehen einfach nochmal melden!
Wenns geht den Thread bitte als "Erledigt" markieren.
 
Zurück