Zum Inhalt springen
View in the app

A better way to browse. Learn more.

Fachinformatiker.de

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

FileFilter

Empfohlene Antworten

Veröffentlicht

Hi,

kann mir einer sagen was daran falsch ist?

JFileChooser chooser = new JFileChooser();

// Note: source for ExampleFileFilter can be found in FileChooserDemo,

// under the demo/jfc directory in the Java 2 SDK, Standard Edition.

ExampleFileFilter filter = new ExampleFileFilter();

filter.addExtension("jpg");

filter.addExtension("gif");

filter.setDescription("JPG & GIF Images");

chooser.setFileFilter(filter);

int returnVal = chooser.showOpenDialog(parent);

if(returnVal == JFileChooser.APPROVE_OPTION) {

System.out.println("You chose to open this file: " +

chooser.getSelectedFile().getName());

}

Welchen Fehler erhälst Du denn...wäre nicht schlecht zu wissen.

Aber ich kann ja mal blind raten :)

Hast Du die Klasse "ExampleFileFilter"?

FileFilter sind nämlich Interfaces. Und abgeleitete Klassen müssen die Methoden noch "füllen"

LoCal

Ja, die Klasse habe ich nicht

Tja, dann kann es ja auch nicht gehen. Du mußt Dir erst ne FIleFIlter-Klasse schreiben.

ich hatte mal in einem Projekt auch eine FileFilter-Klasse benötigt.

Eine Implementierung dieses Interface könnte z.b. so aussehen :


/**

  * Klasse implementiert die Methoden des Interface FileFilter.

  * Diese Klasse ermoeglicht es, Dateien zu filtern, die ein 

  * Template darstellen koennen.

  * Mit dem ImgFileFilter ist es moeglich nur die Dateien eines 

  * Verzeichnis zu filtern,

  * die einen zulaessigen Bildtyp repraesentieren (z.B. GIF, JPEG 

  * usw.).

  */

public class ImgFileFilter implements FileFilter{

/**

 * Die Methode accept entscheidet, ob eine Datei zulaessig ist

 * oder nicht.

 * @param file Datei, welche auf Zulaessigkeit geprueft werden

 *soll

 * @return boolean true, wenn Datei zulaessig ist, andernfalls 

 * false

 */

  public boolean accept(File file){

   //prüfen, ob es sich um eine Datei handelt und ob es eine 

   //Grafikdatei(jpg;gif;png) ist

   if (file.isFile()){

     //es sollten nur Betriebssystemunabhaengige Grafikformate

     //gefiltert werden

     if ((file.getName().endsWith(".png")) || (file.getName

     ().endsWith(".jpg")) || (file.getName().endsWith(".gif"))){

        return true;

     }

     else{

        return false;

     }

   }

   else{

      return false;

   }

  } // accept

} //Class ImgFileFilter


Viel Spaß :)

Nein, das habe ich leider nicht gesucht. Wenn man so einen JFileChooser öffnet, steht doch unten in welchem Format man abspeichern will wie z.B. alle *.* oder *.jpg. Das habe ich gemeint.

aber das macht mensch doch mit einem FileFilter. Du kannst Dir quasi soviele FileFilter machen wie du willst......... die erscheinen dann "unten"

ich habe deine Beispiel ausprobiert und das geht bei mir leider nicht.

Bitte sag doch mal genau was du machen willst! Der fehler in deiner ursprünglichen Post war ja, daß die ExampleFileFiler gefehlt hat.

wenn man z.B. einen JFileChooser öffnet bekommt man eine Öffnen- oder Speichern-Explorer. Da kann man doch angeben welche Dateitypen man sehen will und da will ich nicht nur "alle Dateien *.*" sehen sondern auch noch andere wie z.B. *.txt oder *.properties.

yup, daß geht mit dem FileFilter. Der JFileChooser hat eine methode die heißt setFileFilter(FileFilter filter) und damit fügst du die "FilterOptionen" an.

Ich habe das ganze so probiert aber ich bekomme es nicht zum laufen. Das ist meine JFileChooser und meine FileFilter:

private void saveFile3()

{

jfc = new JFileChooser();

jfc.setCurrentDirectory(new File(""));

jfc.setFileFilter(new FileFilter()

{

public boolean accept(File f)

{

return f.getName().endsWith(".java") || f.isDirectory();

}

public String getDescription()

{

return "Java Programs (*.java)";

}

});

int result = jfc.showSaveDialog(this);

if (result == JFileChooser.APPROVE_OPTION)

{

File f = jfc.getSelectedFile();

tfspeicherort.setText(f.getPath() + f.getName());

writeFile3(f);

}

}

wie lautet denn der fehler? den du erhältst

der Fehler lautet:

VisualCafe (15:03:40): Error: D:\VisualCafeEE451\VCafe\Projects\Oberflaeche.java(312): setFileFilter(javax.swing.filechooser.FileFilter) in javax.swing.JFileChooser cannot be applied to (<anonymous java.io.FileFilter>)

hi,

ich schaffe es leider nicht, hier zu einen FileFilter zu programmier. kannst du mir vielleicht sagen wie ich es schaffen kann?

private void saveFile3()

{

jfc = new JFileChooser();

jfc.setCurrentDirectory(new File(""));

int result = jfc.showSaveDialog(this);

if (result == JFileChooser.APPROVE_OPTION)

{

File f = jfc.getSelectedFile();

tfspeicherort.setText(f.getPath());

tfspeicherortinhalt = tfspeicherort.getText();

writeFile3(f);

}

}

Versuch mal keine anonyme Klasse als FileFilter zu implementieren.

Archiv

Dieses Thema wurde archiviert und kann nicht mehr beantwortet werden.

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.