# Dateiauswahl im Dialogfeld



## Heiko (5. Jul 2004)

Hi,

ich hab folgendes Coding und will hier einschränkend, dass nur *.java oder *.jsp Dateien ausgewählt werden können.

Habe es schon selbst probiert und auch verschiedene Bücher und Codings hier im Internet versucht, leider hat nix funktioniert.

Es wäre schön, wenn mir geholfen werden könnte.

Vielen Dank!


```
public static File[] DialogStarten()
	{
		Component parent = null;
		JFileChooser ansicht = new JFileChooser();

		ansicht.setCurrentDirectory(new File("."));
		ansicht.setMultiSelectionEnabled(true);

		int result = ansicht.showOpenDialog(parent);
		File[] datname = ansicht.getSelectedFiles();

		return datname;
	}
```


----------



## P3AC3MAK3R (5. Jul 2004)

Du mußt eine Klasse erzeugen, die das Interface FileFilter implementiert und dann die Methode setFileFilter mit dieser Klasse als Parameter aufrufen.

http://java.sun.com/j2se/1.4.2/docs/api/javax/swing/JFileChooser.html
http://java.sun.com/j2se/1.4.2/docs/api/javax/swing/JFileChooser.html#setFileFilter(javax.swing.filechooser.FileFilter)


----------



## Heiko (5. Jul 2004)

Ich habs befürchtet, dass diese Antwort kommt.
Das funktioniert nicht, habs schon zigmal probiert.


----------



## bygones (5. Jul 2004)

```
JFileChooser fc = new JFileChooser(".")
fc.setMultiSelectionEnabled(false);
fc.setAcceptAllFileFilterUsed(false);
fc.setFileFilter(new MarsFileFilter());
}

private class MarsFileFilter extends FileFilter {
		/**
		 * Returns wether the file matches with the given file extension.
		 * 
		 * @param f the file to test
		 * @return wether the file is accepted by the filter
		 * @see javax.swing.filechooser.FileFilter#accept(java.io.File)
		 */
		public boolean accept(File f) {
			if (f == null) {
				return false;
			}
			if (f.isDirectory()) {
				return true;
			}
			return f.getName().toLowerCase().endsWith(fileExtension);
		}

		/**
		 * Returns the description of the accepted files of the filter
		 * 
		 * @return the description
		 * @see javax.swing.filechooser.FileFilter#getDescription()
		 */
		public String getDescription() {
			return fileDescription;
		}
	}
```
is net so schwer.....


----------



## Heiko (5. Jul 2004)

Ich lass es, zur Not gibts eben eine leere Liste, bei der Auswertung.

Danke für die Antworten.


----------



## Stefan1200 (5. Jul 2004)

Wo wir gerade beim JFileChooser FileFilter sind, wie macht man eigentlich mehrere Einträge unten in der Liste?


----------



## bygones (5. Jul 2004)

Stefan1200 hat gesagt.:
			
		

> Wo wir gerade beim JFileChooser FileFilter sind, wie macht man eigentlich mehrere Einträge unten in der Liste?


schau mal hier: http://java.sun.com/j2se/1.4.2/docs/api/javax/swing/JFileChooser.html
da wird von einem ExampleFilter gesprochen der das kann.
bzw. http://java.sun.com/docs/books/tutorial/uiswing/components/filechooser.html


----------



## Stefan1200 (6. Jul 2004)

deathbyaclown hat gesagt.:
			
		

> Stefan1200 hat gesagt.:
> 
> 
> 
> ...



Die Variante kenne ich, aber das Ding kann ja auch nicht mehrere Einträge.
Der macht ja auch nur den Eintrag:
JPG & GIF Images

Ich meine aber, wie ich das hin bekomme, das ich unten in der Liste zum Beispiel folgendes auswählen kann:
GIF Image
JPEG Image
PNG Image

Also drei verschiedene Dinge. Jemand eine Idee?


----------



## Roar (6. Jul 2004)

du kannst mir addChoosableFileFilter mehrere einträge hinzufügen  :!: drum ja auch add und nicht set  :?


----------



## Stefan1200 (8. Jul 2004)

Roar hat gesagt.:
			
		

> du kannst mir addChoosableFileFilter mehrere einträge hinzufügen  :!: drum ja auch add und nicht set  :?



Oh, addChooseableFileFilter kenne ich gar nicht, habe immer set verwedet. Danke für die Info!


----------

