Menyaring Jenis File pada JFileChooser


Teman-teman yang telah mempelajari Java Swing pasti sudah tidak asing dengan komponen JFileChooser, dimana komponen ini digunakan untuk membuka dialog direktori komputer kita yang berisi file dan folder. JFileChooser dapat digunakan untuk membuka maupun menyimpan file(s). Jika kita mempunyai banyak file, ada kalanya kita menginginkan agar JFileChooser menampilkan file dengan ekstensi tertentu agar pengguna mudah menemukannya. Pada tulisan kali ini saya akan mencoba memberikan sedikit tips untuk melakukan modifikasi agar JFileChooser dapat melakukan filter berdasarkan ekstensi yang kita tetapkan. Dimana untuk memudahkan penulisan ini, saya menggunakan IDE Netbeans.

Pertama-tama kita buat contoh Frame seperti  dibawah ini yang berisi, dimana dalam desain nya kita buat tombol Browse (btnBrowse) untuk menampilkan JFileChooser  dan label serta textfield (txtLokasi) untuk menampilkan path dari file yang terpilih, kemudian kita tambahkan komponen JFileChooser. Pada tampilan Design tidak terlihat, namun ketika kita melihat bagian Navigator, komponen JFileChooser (saya beri nama fileChooser) ada di bagian Other Components.

Jangan lupa kita mengatur properties dari JFileChooser agar yang terpilih hanya file, bukan direktori/folder. Selanjutnya kita akan mengatur filter pada fileChooser tersebut, pada bagian konstruktor saya tambahkan kode sebagai berikut.

public FileChooserFrame()
{
  initComponents();
    //set posisi frame dan title frame
  setLocationRelativeTo(null);
  setTitle("File Chooser dengan Filter");

    // Set ekstensi filter, bisa lebih dari 1 ekstensi untuk satu kategori
  fileChooser.setFileFilter(new FileNameExtensionFilter("Document File", "doc","docx","rtf","odt"));
  fileChooser.setFileFilter(new FileNameExtensionFilter("Worksheet File", "xls","xlsx","csv"));
  fileChooser.setFileFilter(new FileNameExtensionFilter("Presentation File", "ppt","pptx"));
}

Dari penggalan code diatas kita menambahkan berbagai filter yang boleh ditampilkan oleh JFileChooser, dimana kita membuat 3 kelompok, tiap kelompok bisa terdiri lebih dari satu ekstensi, misalnya untuk file bertipe “dokumen” ekstensi nya adalah *.doc, *docx, *.rtf, dan seterusnya.

Selanjutnya kita beri event pada tombol Browse agar dapat menampilkan JFileChooser seperti berikut.

private void btnBrowseActionPerformed(java.awt.event.ActionEvent evt)
 {
    // Buka JFileChooser, tampilkan nama file di textfield
    int result = fileChooser.showOpenDialog(this);
    if(result==JFileChooser.APPROVE_OPTION)
    {
      File file = fileChooser.getSelectedFile();
      txtLokasi.setText(file.getPath());
    }
 }

Ketika kita jalankan maka JFileChooser hanya akan menampilkan daftar file sesuai dengan filter yang kita pilih, lalu ketika menekan tombol Open, maka nama file terpilih akan ditampilkan di txtLokasi, seperti terlihat pada gambar di  bawah ini

Mudah-mudahan tips yang cukup sederhana ini bermanfaat untuk teman-teman semua. Seperti biasa, saya juga menyertakan contoh project dalam penulisan ini yang dapat diunduh di Dropbox, terimakasih..

Leave a comment