Membuat Aplikasi Search Dengan Java

2007 Oktober 2

/*
* Program : Searching File
* Author : Eko Kurniawan Khannedy
* Contact : echo_khannedy@yahoo.co.id
*/public class FindFiles extends javax.swing.JFrame{

private javax.swing.JFileChooser browse;
private javax.swing.JButton browse_btn, search_btn, reset_btn;
private javax.swing.JTextField browse_text, search_text;
private javax.swing.JTextArea area_search;
private javax.swing.JScrollPane pane_area;
private PanelFind panel;
private java.util.concurrent.ExecutorService tread;

private java.io.File dir;
private String keyword;
private RunFind findNow;

public FindFiles(){
super(”FindFiles”);

browse = new javax.swing.JFileChooser(”.”);
browse.setAcceptAllFileFilterUsed(false);
browse.setFileSelectionMode(javax.swing.JFileChooser.DIRECTORIES_ONLY);

browse_btn = new javax.swing.JButton(”Browse”);
browse_btn.addActionListener(new Aksi() );
search_btn = new javax.swing.JButton(”Search”);
search_btn.addActionListener(new Aksi() );
reset_btn = new javax.swing.JButton(”Reset”);
reset_btn.addActionListener(new Aksi() );

browse_text = new javax.swing.JTextField();
browse_text.setForeground(java.awt.Color.BLACK);
browse_text.setEnabled(false);
search_text = new javax.swing.JTextField();

area_search = new javax.swing.JTextArea();
area_search.setEditable(false);
pane_area = new javax.swing.JScrollPane(area_search);
tread = java.util.concurrent.Executors.newCachedThreadPool();

panel = new PanelFind(this);
add(panel);

setLocation(200,200);
pack();

setResizable(false);
setDefaultCloseOperation(javax.swing.JFrame.EXIT_ON_CLOSE);
}

public void browse(){
int valid = browse.showOpenDialog(this);
if(valid == javax.swing.JFileChooser.APPROVE_OPTION){
dir = browse.getSelectedFile();
browse_text.setText(dir.getPath());
}else{
return ;
}
}

public void search(){
keyword = search_text.getText();
area_search.setText(”");
if(keyword.length()<1){
return ;
}else if(dir == null){
return ;
}else{
findNow = new RunFind(this);
java.util.concurrent.ExecutorService ex = java.util.concurrent.Executors.newCachedThreadPool();
ex.submit(findNow);
ex.shutdown();
}
}

public void reset(){
keyword = “”;
dir = null;
search_text.setText(”");
browse_text.setText(”");
area_search.setText(”");
}

public static void main (String[] args) {
FindFiles baru = new FindFiles();
baru.setVisible(true);
}

private class Aksi implements java.awt.event.ActionListener{

public void actionPerformed(java.awt.event.ActionEvent event){
String command = event.getActionCommand();
if(command.equals(”Browse”)){
browse();
}else if(command.equals(”Reset”)){
reset();
}else if(command.equals(”Search”)){
search();
}
}

}

private class PanelFind extends javax.swing.JPanel{

private javax.swing.JFrame parent;
private java.awt.GridBagLayout layout;
private java.awt.GridBagConstraints constrait;

public PanelFind(javax.swing.JFrame parent){

this.parent = parent;
layout = new java.awt.GridBagLayout();
constrait = new java.awt.GridBagConstraints();
constrait.insets = new java.awt.Insets(5,5,5,5);
constrait.fill = java.awt.GridBagConstraints.BOTH;

setLayout(layout);
addComp(browse_text,0,0,2,1,0,0);
addComp(browse_btn,2,0,1,1,0,0);
addComp(search_text,0,1,1,1,200,0);
addComp(reset_btn,1,1,1,1,0,0);
addComp(search_btn,2,1,1,1,0,0);
addComp(pane_area,0,2,3,1,0,400);

}

public void addComp(javax.swing.JComponent comp, int kolom, int baris, int lebar, int tinggi, int lebarmanual, int tinggimanual){
constrait.gridx = kolom;
constrait.gridy = baris;
constrait.gridwidth = lebar;
constrait.gridheight = tinggi;
constrait.ipadx = lebarmanual;
constrait.ipady = tinggimanual;
layout.setConstraints(comp, constrait);
add(comp);
}

}

private class RunFind implements Runnable{

private String key;
private int count;
private FindFiles parent;

public RunFind(FindFiles parent){
this.key = keyword.startsWith(”.”) ? keyword : “.”+keyword;
this.count = 0;
this.parent = parent;
}

public synchronized void AddFiletoArea(java.io.File folder){
if(folder.isDirectory()){
java.io.File[] files = folder.listFiles();
for(java.io.File i : files){
AddFiletoArea(i);
try{
Thread.sleep(1);
}catch(InterruptedException e){
}
}
}else{
if(folder.getName().toUpperCase().endsWith(key.toUpperCase())){
area_search.append(folder.getPath()+”n”);
count += 1;
}
}
}

public void run(){
parent.setEnabled(false);
java.io.File[] files = dir.listFiles();
for(java.io.File i : files){
AddFiletoArea(i);
try{
Thread.sleep(1);
}catch(InterruptedException e){
}
}
area_search.append(”—-FINISH—-n”);
area_search.append(”There Are “+count+” Files Found”);
parent.setEnabled(true);
}
}

}

23 Responses leave one →
  1. 2008 Desember 24

    bagus mas.
    yang laen dunk…
    :)

  2. 2008 Desember 27
    Adi permalink

    Fuuuuiiiiih,
    keren mas.
    cooooool.
    bs buat reference TA quw.
    boleh kan mas???

  3. 2008 Desember 27

    yo, silahkan

    • 2009 Mei 25
      didit permalink

      mas aQ ne msh awam banget tp pengen ngerti ttg java n bwt app java kayak mas,
      misalnya aQ tar TA aq minta bantuan m,as yaw….
      ok???
      aQ mw bwt app tentang cara mentransfer apapun lwt device bluetooth ok mas…
      tu dulu selebiihnya tlg tar aq d bantu yah…
      bls lwt e-mail aQ yah mass…

    • 2009 Mei 25
      didit permalink

      mas baik banget yah, e-mailnya mas apa??

  4. 2009 Januari 12
    try permalink

    numpang nanya mas, saya guru kimia, sy lagi mempelajari netbeans mobile untuk membuat aplikasi pembelajaran di hp. mohon bantuan untuk tutorial search n find text atau cara bikin kamus dengan netbean 6.5. tolong kirim lewat email. terima kasih

  5. 2009 Januari 17

    mas bantuin cariin judul TA dunk…
    aplikasi hp pake program java…
    mhon bantuan ya bwt tambahan referensi…
    thanks yach..
    ^-^

  6. 2009 Januari 18

    hmm judul TA y?
    kalo soal hp kenapa gak bikin penunjuk arrah aja?
    keren kan?

  7. 2009 Januari 24
    mr. sky permalink

    1 x lg mksh y…. smoga ilmu mr. echo…. trus berkembang….biar bsa ngajarin kta2..ok

  8. 2009 Januari 29

    Weiss……. keren… sy mau nyoba buat ah….!!!

  9. 2009 Januari 30
    Q-cube permalink

    mas echo…………………..
    he he he….. kayaknya ucapan makasih aja ga ckup Q ucapi buat mas.
    lantaran tulisan-tulisan mas usaha Q untuk belajar java menjadi jauh lebih ringa
    He he he …
    mas q masih binggung dengan speech recongnitionya java. error terus waktu Q coba.
    bisa tolong bantuin g,,,,,,,,,,
    pli………………….s
    Q.cubee@gmail.com
    makasih

  10. 2009 Februari 11
    kusandriadi27 permalink

    mantaaaaaaaaaap,,mau bikin OS mini ntar pas TA…cocok buat nambah referensi..

    boleh ya mas?

    ijin bookmark..makasih berat!!!!

  11. 2009 Februari 15
    ninan permalink

    oh kayak google desktop y ini?

  12. 2009 Februari 17
    t121hy permalink

    saya guru kimia, ingin coba buat aplikasi kamus kimia. saya dah coba cari2 n yg paling mudah pake netbeans.
    tolong tutorial aplikasi kamus sederhana dengan find text

  13. 2009 Maret 5
    rhya permalink

    aQ bNun Nech mw bUat apLiksi Ap bwt PI aq????
    mCh bNun?????????

    kra2 java ssh nda C yaH????

    pLizzz bantu dOnk????

    • 2009 Juli 2
      junior permalink

      berani memulai dong…
      jangan nanya susah dolo………

  14. 2009 Juni 23

    kalau ada yang kamus dunk mas

  15. 2009 Juli 2
    junior permalink

    kasih contoh “search” yang bisa mencari suatu field dalam table dan ditampilin di tableModel.
    itu baru serruuu.

    • 2009 Juli 6

      bukannya di blog ini ada tutorial itu
      coba search dulu baru ngomong :P

  16. 2009 Juli 5
    kampus permalink

    Wah…mantap…
    Oh yach….itu program buat pake apa….apa IDE yg visual spt Netbeans,Eclipse atau sejenis Jcreator / notepad….

Trackbacks & Pingbacks

  1. Belajar JaVa « WAHYU FIGHTER
  2. Tutorial Java dari Eko Kurniawan Khannedy « nge-WP@net

Leave a Reply

Note: You can use basic XHTML in your comments. Your email address will never be published.

Berlangganan umpan komentar ini melalui RSS