FileFilter

BlubBlub

Bekanntes Mitglied
hi,

kann mir jemand den unterschied sagen zwischen den beiden codes:

Java:
	    		   FileNameExtensionFilter filter = new FileNameExtensionFilter("Text-File (*.txt)", "txt");					//zeigt nur die angegebenen Dateien an
	    		   fc.setFileFilter(filter);
	    		  
	    		   FileNameExtensionFilter filter2 = new FileNameExtensionFilter("JPG-File (*.jpg)", "jpg");					//zeigt nur die angegebenen Dateien an
	    		  fc.setFileFilter(filter2);

Java:
	    		   fc.setFileFilter(new FileFilter()
	    		    {
 
	    		    	public boolean accept(File f) 
	    		    	{
	    		    		return f.getName().toLowerCase().endsWith(".txt") || f.isDirectory();
	    		    	}
 
	    		    	public String getDescription()
	    		    	{
	    		    		return "Text-File (*.txt)";
	    		    	}
	    		    });
	    		    
	    		    
	    		    fc.setFileFilter(new FileFilter()
	    		    {
 
	    		    	public boolean accept(File f) 
	    		    	{
	    		    		return f.getName().toLowerCase().endsWith(".jpg") || f.isDirectory();
	    		    	}
 
	    		    	public String getDescription()
	    		    	{
	    		    		return "JPG-File (*.jpg)";
	    		    	}
	    		    });

Meine Vermutung ist, dass der zweite Code nur die Dateie zum Laden zulässt die in der accept Methode stehen (habe einen JFileChooser zum öffnen verwedet).
Während der erste Code lediglich zum Anzeigen dient, aber keine Einschränkungen macht welche Datei zugelassen werden darf.
Aber da ich eh nur die angezeigten Dateien auswählen kann, wozu sollte ich dann die zweite Möglichkeit jemals programmieren, wenn die erstere doch viel kürzer ist.
 
M

Marcinek

Gast
Der obere Code ist eine konkrete Implementierung eines FileFilters.

Den unteren Code hast du implentiert.

Würdest du deinen Code nicht als inline machen, sondern in eine separate Datei, dann hättest du auch einen Konstruktor, der die Endung angibt und die Beschreibung für den Filter.

Wenn du einen Filefilter implementieren willst, der

Nur Dateien anzeigt, die unter dem Einfluss deines Programms (e.g. Versionsverwaltung) stehen, dann müsstest du den Filter selbst implementieren, da würdest du mit dem oberen Code nicht weit kommen.

Und beide haben das gleiche Ergebnis.


--

Fast das gleiche, den der obere Code zeigt auch Dateien, die

.asoadhaohtxt

enden während die untere Implementierung nur .txt erlaubt.
 
Zuletzt bearbeitet von einem Moderator:

BlubBlub

Bekanntes Mitglied
noch ne kurze frage, was meinst du genau mit "nur Dateien anzeigt, die unter dem Einfluss deines Programms (e.g. Versionsverwaltung) stehen".

also bis jetzt würde ich dann die zweite version bevorzugen da ich ja nicht will, das .ertertztxt oder so
endung auch angezeigt werden.
 
Zuletzt bearbeitet:

Ähnliche Java Themen

Neue Themen


Oben