JFileChooser --> FileFilter --> FilenameFilter problem

Status
Nicht offen für weitere Antworten.

kartofelbauer

Aktives Mitglied
moin
ich bin gerade dabei ein progamm zu schreiben, das es erleichtert vokabeln zu lernen.
man soll vokabeln, die man zuvor eingegeben hat, speichern, öffnen etc

mein problem ist jetzt folgendes:
mit der klasse neueVokabelnListener (die klasse implementiert den ActionListener) erzeuge ich einen neuen JFileChooser, der die eingebenen vokabeln einmal speichern soll.
ich übergebe dem erzeugten JFileChooser, mit der methode .setFileFilter, einen FileFilter der Klasse myFileFilter in dem FileFilter defenier ich einen neuen FilenameFilter der klasse myNameFilter

das problem ist, das die methode .setFileFilter die übergeben parameter nicht annimmt...
wenn mir da einer weiter helfen könnte wäre cool 😀
hier die codeschnipsel :
import java.awt.event.*;
import javax.swing.*;
import java.awt.*;
import java.io.File;
import java.io.FileFilter;
import java.io.FilenameFilter;

public class neueVokabelnListener implements ActionListener{

myNameFilter filter = new myNameFilter();

public neueVokabelnListener(){

}

public void actionPerformed(ActionEvent e){


JFileChooser fileChooser = new JFileChooser();
fileChooser.setDialogTitle("Vokabeln speichern unter...");
fileChooser.setFileFilter(filter);
fileChooser.showSaveDialog((Component)e.getSource());

}


}

import java.io.*;


public class myFileFilter implements FileFilter {

myNameFilter nameFilter = new myNameFilter();

public boolean accept(File f){

if(nameFilter.accept(f,f.toString())){
return true;
}
else
return false;
}

public String getDiscription(){
return ("alle .dat - Dateien");
}



}

public class myNameFilter implements FilenameFilter{


public boolean accept(File dir, String d){

if(d.endsWith(".dat")){
return true;
}// von d.endsWith

else{
return false;
}
} // methodenschluß

}
 
Weil der FileChooser ein Object das von
Code:
javax.swing.filechooser.FileFilter
abgeleitet ist, und nicht das Interface von java.io :wink:
Klassennamen werden groß geschrieben!
 
jap da hast du wohl recht, den error hinweis in eclipse hab ich auch lesen können 😛
leider bin ich unfähig, diesen fehler zu beheben...
ich kann mir darunter gerade nix vorstellen sorry 😳

ich hab mich vorhin nochmal versucht aber es leider auch nicht hinbekommen, wenn du zeit hättest, könntest du mir das kurz erklären

(das mit den großen klassennamen.... ja... ich weiß ^^ habs nur vergessen lol )
 
Was verstehst du denn daran nicht? Du implementierst ein Interface das zwar auch FileFilter heißt, aber absolut
nichts mit FileFilter zu tun hat den du brauchst. Die heißen eben einfach gleich.
Also lösch denn unnützen import, und mach statt implements FileFilter eben extends FileFilter... :wink:
oder einfach
Code:
    FileFilter filter = new FileFilter()  //aber bitte diesmal den nehmen: javax.swing.filechooser.FileFilter;  :D 
    {
        public boolean accept(File f)
        {
            // TODO Auto-generated method stub
            return false;
        }

        public String getDescription()
        {
            // TODO Auto-generated method stub
            return null;
        }
    };
 
boah genauso wollt ich es von anfang an machen!
und ich bekam eine fehlermeldung...
naja dann werde ich irgendwo einen fehlergemacht haben, ich glaube es war der import ... 😉
ich probiere mich jetzt nochmal an der geschichte, danke für deine hilfe ....

ich geb nochmal feedback
 
ohgooottt...
jaaa jetzt seh ichs auch...
ich weiß auch net, was da im hirn blockiert hat, ich hab mich auch schon gefragt warum ich die methode getDiscription() auf einmal nicht mehr gebraucht habe....

nochmal danke für die hilfe
 
Status
Nicht offen für weitere Antworten.

Neue Themen


Zurück
Oben