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);
}
}