JFileChooser Filtern

J

Java_Neuling

Hi,

ich möchte einen JFileChooser so Filtern das er mir z. B. alle Dateien anzeigt die 'at' enthalten also nicht am anfang oder ende des Dateinamens suchen sondern irgendwo mitten drin.
startsWith() und endsWith() sind mir bekannt aber die lösen mein Problem nicht :(

ich hoffe ihr könnt mir helfen :(

Schon mal vielen Dank für die Mühen! :)
 
schau dir doch mal die Methode indexOf() an.

Ich habs mir auch schon gedacht gehabt das ich ne abfrage mit dem indexof mache alles was ungleich -1 ist soll angezeigt werden und alles was -1 ist wird nicht angezeigt... ABER ich hab keine ahnung wie man des in den FileFilter mit einbauen soll :confused:
 
Kann das Thema von jedem als erledigt gekennzeichnet werden? weil wenn nicht war ich des eigentlich nicht :confused: ich weiß nämlich immer noch nicht wie ich weiter kommen soll :( ...
 
Ich hoffe ich krieg nicht all zu viel ab weil euch mein code nicht gefällt :D

Code:
import java.awt.Container;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.io.File;
import javax.swing.JButton;
import javax.swing.JFileChooser;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JTextField;

public class FileChooser 
{
	public static void main(String [] args)
	{
	   //Button, Label, Textfeld für die Suche
	   JButton bt_suche   = new JButton("Suchen");
	   JLabel lb_suche    = new JLabel("Suche:");
	   final JTextField tf_suche = new JTextField();
		
	   //Frame	   
                   final JFrame frame = new JFrame("Suche");
	   frame.setResizable(true);
	   frame.setDefaultCloseOperation( JFrame.EXIT_ON_CLOSE );
	    
	   //FileChooser
	   final JFileChooser chooser = new JFileChooser();
	   frame.add(chooser);
	   chooser.setPreferredSize(new java.awt.Dimension(377, 255));
	   chooser.setMultiSelectionEnabled(true);
	   chooser.setControlButtonsAreShown(false);
		
	   File file_pfad = new File("C:/");
	   chooser.setCurrentDirectory(file_pfad);
	
	   //FileFilter	   
                   chooser.setFileFilter( new javax.swing.filechooser.FileFilter(){ 	/*Filter erstellen*/	      
	      public boolean accept( File file )				/*erlaubte Typen festlegen*/ 
	      { 							
	    	 return (file.isDirectory() ||  				/*Ordner sind erlaubt*/ 
	                 file.getName().toLowerCase().endsWith(".txt"));	/*Dateien mit der Endung '.txt' sind erlaubt*/ 		      } 
	           public String getDescription() 					/*gibt die Beschreibung im Auswahlmenu zurück*/ 
	      {  							
	    	  return "Text-Dateien (*.txt)"; 
	      } 
	   }); 
	    
	    
	   /*AL für den bt_suche*/
	   ActionListener suche = new ActionListener()
	   {
		public void actionPerformed( ActionEvent e )
		{
		    final String str_suchEingabe = tf_suche.getText();
				
	       	    chooser.setFileFilter( new javax.swing.filechooser.FileFilter()			
		    {    
		      public boolean accept( File file )									 
		      {  
			  return (file.isDirectory() ||  									
			  file.getName().toLowerCase().startsWith(str_suchEingabe) &&
			  file.getName().toLowerCase().endsWith(".txt"));
		      }
		
                      public String getDescription() 										
		      {  
		    	  String str_return = "";
			    	  
		    	  if(str_suchEingabe.length() > 0)
		    	  {
		    		  str_return = "Text-Dateien (*.txt) + '" + str_suchEingabe + "'";
		    	  }
		    	  else
		    	  {
		    		  str_return = "Text-Dateien (*.txt)";
		    	  }
			    	  
			  return str_return;
		     }
		  });
	       }
	   };
	   bt_suche.addActionListener(suche);
		
	   //Null-Layout
	   Container c = frame.getContentPane();
	   c.setLayout( null );
	    
	   chooser.setBounds ( 10,   0, 400,400);
	   bt_suche.setBounds    (404, 420, 150, 25);
	   lb_suche.setBounds    ( 22, 420,  50, 25);
	   tf_suche.setBounds	( 93, 420, 305, 25);

            c.add(chooser);		
	   c.add(lb_suche);
	   c.add(tf_suche);
	   c.add(bt_suche);
		
            frame.setSize(580, 490);
	   frame.setVisible(true);		
	}
}

ich hab jetzt nur den FileChooser und die Suchfunktion gepostet die Buttons zum löschen etc hab ich ausgelassen...
 
Code:
chooser.setFileFilter( new javax.swing.filechooser.FileFilter(){  
	      public boolean accept( File file )				
	      { 							
	    	 return (file.isDirectory() ||  				
	                 file.getName().toLowerCase().endsWith(".txt")) && file.getName().toLowerCase().indexOf("at") != -1;	      
              } 
	           public String getDescription() 					
	      {  							
	    	  return "Text-Dateien (*.txt)"; 
	      } 
	   });


MFG

zEriX
 
Zurück