Veröffentlicht 24. Juni 200223 j 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()); }
24. Juni 200223 j 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
25. Juni 200223 j Tja, dann kann es ja auch nicht gehen. Du mußt Dir erst ne FIleFIlter-Klasse schreiben.
26. Juni 200223 j 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ß
26. Juni 200223 j 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.
26. Juni 200223 j aber das macht mensch doch mit einem FileFilter. Du kannst Dir quasi soviele FileFilter machen wie du willst......... die erscheinen dann "unten"
26. Juni 200223 j Bitte sag doch mal genau was du machen willst! Der fehler in deiner ursprünglichen Post war ja, daß die ExampleFileFiler gefehlt hat.
26. Juni 200223 j 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.
26. Juni 200223 j 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.
26. Juni 200223 j 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); } }
26. Juni 200223 j 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>)
27. Juni 200223 j 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); } }
Archiv
Dieses Thema wurde archiviert und kann nicht mehr beantwortet werden.