Malzzeit,
habe mir gerade mal versch. FileFilter angesehen und für ungenügend erachtet. Ich möchte versch. Filter mit verschi. Beschreibungen, das mache ich mit:
Soweit klar.
Um nun aber nicht für jeden Eintrag eine neue Klasse erstellen zu müssen, hab ich mir ´nen eigenen FileFilter geschrieben, das sieht so aus:
Also kann ich auf meinem FileChooser sowas machen:
Denkste... ich bekomme nämlich folgende Fehlermeldung, die ich noch nie irgendwo gesehen hab:
Das Ganze geht jedoch, wenn ich nicht eine Instanz von MyFilter übergebe, sondern eine annonyme Klasse (also mitels
).
Hat dazu mal schnell jemand ´ne Idee, wo der Fehler herkommt?
habe mir gerade mal versch. FileFilter angesehen und für ungenügend erachtet. Ich möchte versch. Filter mit verschi. Beschreibungen, das mache ich mit:
Java:
JFileChooser fc = new JFileChooser();
fc.addChoosableFileFilter(new FileFilter{...});
Um nun aber nicht für jeden Eintrag eine neue Klasse erstellen zu müssen, hab ich mir ´nen eigenen FileFilter geschrieben, das sieht so aus:
Java:
public class AppTest {
public static void main(String[] args) {
// display a data store file chooser dialog for shapefiles
JFileChooser fc = new JFileChooser();
fc.addChoosableFileFilter(new MyFileFilter("ESRI Shapefiles", "shp"));
//...
}
private class MyFileFilter extends FileFilter {
String description;
String[] extensions;
public MyFileFilter(String description, String ... extension) {
this.description = description;
this.extensions = extension;
}
@Override
public String getDescription() {return this.description;}
@Override
public boolean accept(File f) {
if (f.isDirectory()) return true;
String fileName = f.getName();
String extension = fileName.substring(fileName.lastIndexOf(".") + 1);
for (String ext: this.extensions) {
if (ext.equals(extension)) return true;
}
return false;
}
}
}
Also kann ich auf meinem FileChooser sowas machen:
Java:
fc.addChoosableFileFilter(new MyFileFilter("ESRI Shapefiles", "shp"));
fc.addChoosableFileFilter(new MyFileFilter("DBF-Files", "dbf"));
fc.addChoosableFileFilter(new MyFileFilter("Comma seperated files", "csv"));
Code:
No enclosing instance of type AppTest is accessible. Must qualify the allocation with an enclosing instance of type AppTest (e.g. x.new A() where x is an instance of AppTest).
Code:
new FileFilter{...}
Hat dazu mal schnell jemand ´ne Idee, wo der Fehler herkommt?
Zuletzt bearbeitet: