/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/
package meinprogramm;
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.io.File;
import java.io.FileFilter;
import java.util.ArrayList;
import javax.swing.*;
import javax.swing.event.ListDataListener;
/**
*
* @author Marko
*/
public class App extends JFrame {
private JLabel eintL = new JLabel("Datei eintippen");
private JTextField datnTF = new JTextField();
private JButton suchB = new JButton("Suchen...");
private JButton oeffB = new JButton("Öffnen...");
private JTextField treeFrame = new JTextField();
private JTextField datFrame = new JTextField();
private JButton bildB = new JButton("Bilder");
private JButton dokB = new JButton("Dokumente");
private JTextArea datTA= new JTextArea();
private JList gefDatListe= new JList();
private ArrayList<File> gefundeneDateien= new ArrayList<File>();
DefaultListModel model= new DefaultListModel();
public App() {
initComponents();
}
private void initComponents() {
// GefDatListModel gdlm = new GefDatListModel();
Container c = getContentPane();
c.setLayout(new GridLayout(0, 2));
JPanel p1 = new JPanel(new GridLayout(2, 0));
JPanel p2 = new JPanel(new GridLayout(0, 1));
JPanel p3 = new JPanel(new GridLayout(3, 0));
JPanel p4 = new JPanel(new GridLayout(0, 3));
JScrollPane sp2= new JScrollPane(gefDatListe);
// JScrollPane sp1= new JScrollPane(datTA);
// datTA.setEditable(false);
p3.add(eintL);
p3.add(datnTF);
p3.add(p4);
p4.add(bildB);
p4.add(dokB);
p4.add(suchB);
p1.add(treeFrame);
p2.add(sp2);
c.add(p3);
c.add(p1);
c.add(p2);
suchB.addActionListener(new SuchenFunktionsButton());
// bildB.addActionListener(new BilderSuchFunktionsButton());
}
public static void main(String[] sda) {
App ap = new App();
ap.setVisible(true);
ap.setSize(600, 600);
}
public class SuchenFunktionsButton implements ActionListener {
@Override
public void actionPerformed(ActionEvent e) {
String s1 = datnTF.getText();
model.removeAllElements();
gefundeneDateien.removeAll(gefundeneDateien);
SuchenFunktionsButton sfb = new SuchenFunktionsButton();
String filenamepattern = s1;
sfb.sucheDatei(new File("C:\\Program Files\\NetBeans 7.0"), filenamepattern);
System.out.println("Fertig");
System.out.println(gefundeneDateien.size());
// gefDatListe.setModel(gefDatListe.getModel());
// gefDatListe.paintComponents(getGraphics());
}
private void sucheDatei(File ausgangspunkt, String suchDateiMuster) {
//File ausgangspunkt = new File("C:\\");
//ausgangspunkt.list();
File foundFile = null;
// File[] files1= ausgangspunkt.list()
System.out.println("Ausgangspunkt: [" + ausgangspunkt.getAbsolutePath() + "]");
File[] files = ausgangspunkt.listFiles(new RealFileFilter());
if (files != null) {
for (File aktFile : files) {
if (aktFile.getName().contains(suchDateiMuster)) {
foundFile = aktFile;
gefundeneDateien.add(foundFile);
model.addElement(foundFile.getName());
}
}
}
if (true) {
File[] dirlist = ausgangspunkt.listFiles(new DirFilter());
if (dirlist != null) {
for (File aktDir : dirlist) {
sucheDatei(aktDir, suchDateiMuster);
}
}
}
gefDatListe.setModel(model);
}
public class RealFileFilter implements FileFilter {
@Override
public boolean accept(File datei) {
boolean ok = false;
return datei.isFile();
}
}
public class DirFilter implements FileFilter {
@Override
public boolean accept(File datei) {
boolean ok = false;
return datei.isDirectory();
}
}
}
// private class GefDatListModel implements ListModel{
//
// @Override
// public int getSize() {
// //throw new UnsupportedOperationException("Not supported yet.");
// return gefundeneDateien.size();
// }
//
// @Override
// public Object getElementAt(int index) {
// //throw new UnsupportedOperationException("Not supported yet.");
// return gefundeneDateien.get(index);
// }
//
// @Override
// public void addListDataListener(ListDataListener l) {
// //throw new UnsupportedOperationException("Not supported yet.");
//
// }
//
// @Override
// public void removeListDataListener(ListDataListener l) {
// //throw new UnsupportedOperationException("Not supported yet.");
// }
//
// }
}