FileFilter

Status
Nicht offen für weitere Antworten.
T

the_who

Gast
Hi Forum,

irgendwie scheine ich zu blöd zu sein einen FileFilter zu schreiben. Habe bereits in Google und hier im Forum gesucht. Bin auch fündig geworden und hab es jetzt auf 2 Wegen probiert.

1.

Code:
		JFileChooser choos = new JFileChooser();
		choos.setFileFilter(new FileFilter() {
			public boolean accept(File f) {
				return f.isDirectory() || f.getName().toLowerCase().endsWith("gif") || f.getName().toLowerCase().endsWith("jpg") || 
					   f.getName().toLowerCase().endsWith("jpeg");
			}
			public String getDescription() {
				return "gif und jpg";
			}
		});

Fehlermeldung:

setFileFilter(javax.swing.filechooser.FileFilter) in javax.swing.JFileChooser cannot be applied to (<anonymous java.io.FileFilter>)
choos.setFileFilter(new FileFilter() {

2.

Code:
import java.io.*;

class ImageFileFilter extends FileFilter {
	
	public boolean accept(File f) {
		
		String temp = f.getName().toLowerCase();
		if (f == null) { 
			return false; 
		} 
		if (f.isDirectory()) { 
			return true; 
		}
		if (temp.endsWith("jpeg") || temp.endsWith("jpg") || temp.endsWith("gif")) {
			return true; 
		}
		return false;
	}
	
	public String getDescription() {
		
		return "jpg und gif";
	}
}

Fehlermeldung

no interface expected here
class ImageFileFilter extends FileFilter {

Kann mir bitte jemand sagen, was ich falsch gemacht habe? Danke!
 

Mag1c

Top Contributor
Hi,

es steht doch alles da. JFileChooser erwartet einen javax.swing.filechooser.FileFilter während du deinen von java.io.FileFilter abgeleitet hast (bzw. versucht hast. Deswegen ja der Fehler im 2. Code).

Und nebenbei: es ist echt dämlich, daß es da eine Klasse und ein Interface mit gleichem Namen und ähnlicher Funktion gibt. Ich glaube, da hat Sun nicht aufgepasst.

Gruß
Mag1c
 
T

the_who

Gast
Thx. funktioniert perfekt.

Da hat sich sun wohl echt nix dabei gedacht ...
 
R

Roar

Gast
eh sorry ich hab in meinem classpath mindestens je 10 klassen/interfaces die Element, Document, List o.Ä. heißen :autsch:
wenn schon ctrl+shift+o dann muss man's auch richtig machen :bae:
 
Status
Nicht offen für weitere Antworten.

Ähnliche Java Themen


Oben