Cari artikel di situs ini

Kotak Dialog FileDialog

Versi ramah cetakVersi ramah cetak

Kelas FileDialog melambangkan kotak dialog untuk memilih file. Pada dasarnya ada dua jenis kotak dialog pemilihan file, yaitu untuk menyimpan dan membaca file, seperti diimplementasikan pada kebanyakan program File -> Open dan File -> Save. Keduanya hampir sama dalam tampilan, kecuali beberapa detail lain yang berbeda, misalnya tombol "Open" pada kotak dialog untuk membaca file, dan "Save" untuk kotak dialog untuk menyimpan file.

Kotak dialog pemilihan file bisa diset untuk memilih hanya beberapa file saja dengan bentuk tertentu, misalnya hanya file berekstensi *.html saja yang ditampilkan dalam daftar file. Ini disebut file filter. Kotak dialog pemiihan file juga bisa diset untuk memilih satu file saja atau beberapa file sekaligus.

Mirip dengan kotak dialog lain, kotak dialog file tidak akan ditutup jika user sebelum user menekan tombol "Open" atau "Save" atau "Cancel".

Berikut ini adalah beberapa bit gaya yang bisa diberikan ketika kotak dialog pemilihan file dibuat dengan konstruktornya.

Bit gayaPenjelasan
SWT.OPENMembuat kotak dialog untuk membuka file
SWT.CLOSEMembuat kotak dialog untuk menutup file
SWT.SINGLEMembuat kotak dialog pemilihan file yang hanya bisa memilih satu file saja (perilaku standar jika tidak disebutkan)
SWT.MULTIMembuat kotak dialog pemilihan file yang bisa memilih beberapa file sekaligus

Metode-metode pada FileDialog

MetodePenjelasan
open()
  1. Membuka kotak dialog untuk dipresentasikan kepada user
  2. Mengembalikan string yang merupakan nama lengkap (termasuk direktorinya) file yang dipilih. Jika tidak ada file yang dipilih atau tombol Cancel ditekan, akan mengembalikan null. Jika kotak dialog diset dengan SWT.MULTI, dan beberapa file dipilih, hanya file pertama yang dikembalikan
getFileName()Mengembalikan String nama lengkap file yang dipilih, atau string kosong jika tidak ada yang dipilih
getFileNames()Mengembalikan array String[] yang berisi nama-nama file yang dipilih. Bisa berisi array dengan panjang 0 jika tidak ada file yang dipilih
setFileName(String namafile)Mengeset nama file pada kotak dialog. Berguna untuk memberi pentunjuk kepada user bahwa nama file dengan nama tertentu saja yang sebaiknya dipilih
getFilterPath()Mengembalikan String path ketika kotak dialog ditutup
setFilterPath(String path)Mengeset path di mana pencarian file dimulai
getFilterExtensions()Mengembalikan array String[] ekstensi file-file yang akan ditampilkan pada kotak pencarian file
setFilterExtensions(String[] ekstensi)Mengeset ekstensi file-file yang akan ditampilkan pada kotak pencarian file, misalnya "*.txt" untuk menampilkan hanya file berekstensi txt saja.
getFilterNames()Mengembalikan String[] nama dari ekstensi file. Biasanya nama ini digunakan untuk memberikan nama ekstensi yang lebih jelas. Misalnya "File teks" untuk menjelaskan ekstensi "*.txt"
setFilterNames(String[] namaEkstensi)Mengeset penjelasan dari ekstensi file-file yang akan ditampilkan.
getFilterIndex()Mengembalikan int yang berisi indeks ekstensi yang dipilih user. Indeks dimulai dari 0
setFilterIndex(int indeks)Mengeset filter mana yang akan ditunjukkan terlebih dahulu kepada user. Jika tidak diset, maka ekstensi yang pertama kali dimasukkan akan ditampilkan terlebih dahulu
getOverwrite()Mengembalikan true jika kotak dialog tambahan untuk menimpa file akan ditampilkan yang berguna untuk mencegah user menimpa data. Digunakan pada kotak dialog bertipe SWT.SAVE
setOverwrite(boolean timpa)Mengeset apakah kotak dialog tambahan untuk menimpa file untuk ditampilkan pada kotak dialog bertipe SWT.SAVE

Berikut ini (dapat diunduh di sini) adalah contoh untuk menampilkan kotak dialog untuk menyimpan suatu file. Ketika Anda menjalankan program ini, shell kosong akan ditampilkan. Jika Anda menekan tombol mouse di dalam shell kosong ini, kotak dialog untuk menyimpan file akan ditampilkan. Hanya ada dua ekstensi yang diperbolehkan, yaitu "*.java" dan "*.class". Jika nama file sudah ada, program akan menanyakan apakah Anda akan menimpa isi file. Jika tidak, maka kotak dialog kembali ditampilkan. Jika ya, kotak dialog akan ditutup, dan hasil pilihan Anda akan ditampilkan pada MessageBox yang berisi nama file pilihan Anda.

package com.lyracc.kotakdialogfile;
 
import org.eclipse.swt.*;
import org.eclipse.swt.widgets.*;
import org.eclipse.swt.events.*;
 
public class KotakDialogFile {
 
    /**
     * @param args
     */
    public static void main(String[] args) {
        Display display = new Display();
        Shell shell = new Shell(display);
 
        // Mengubah ukuran jendela dan mengeset judul jendela
        shell.setSize(200, 200);
        shell.setText("Demo kotak dialog file");
 
        // Membuat event listener shell menggunakan listener bertipe
        MouseAdapter listener = new MouseAdapter() {
            @Override
            // Kita tindih metode mouseDown untuk menampilkan kotak dialog
            // ketika mouse di klik
            public void mouseDown(MouseEvent e) {
                // Ambil shell dari mana event ini dikirim
                Shell induk = (Shell)e.widget;
 
                // Buat kotak dialog file yang dengan modalitas aplikasi
                FileDialog kotakDialogFile = new FileDialog(induk, 
                        SWT.SAVE | 
                        SWT.APPLICATION_MODAL);
 
                // Set judul kotak dialog
                kotakDialogFile.setText("Nama file untuk disimpan");
                // Set filter untuk menyaring ekstensi
                kotakDialogFile.setFilterExtensions(new String[] {
                        "*.java", "*.class"
                    }
                );
                // Set penjelasan filter
                kotakDialogFile.setFilterNames(new String[] {
                        "Sumber kode Java (*.java)", "File biner Java (*.class)"
                    }
                );
                // Buat kotak dialog untuk menanyakan user apakah ingin menimpa
                // isi file yang sudah ada.
                kotakDialogFile.setOverwrite(true);
 
                // Buka kotak dialog file dan ambil file yang dipilih
                // dan letakkan di variabel namaFile
                String namaFile = kotakDialogFile.open();
 
                MessageBox pesan = new MessageBox(induk,
                        SWT.ICON_INFORMATION | SWT.OK);
                pesan.setMessage("File yang dipilih " + namaFile);
                pesan.open();
            }
        };
 
        // Tambah listener pada shell utama
        shell.addMouseListener(listener);
 
        shell.open();
        while (!shell.isDisposed())
            if (!display.readAndDispatch()) 
                display.sleep();
        display.dispose();        
    }
}

 

SisipanUkuran
kotakdialogfile.zip3.89 KB