Navigasi buku
Kotak Dialog FileDialog
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 gaya | Penjelasan |
SWT.OPEN | Membuat kotak dialog untuk membuka file |
SWT.CLOSE | Membuat kotak dialog untuk menutup file |
SWT.SINGLE | Membuat kotak dialog pemilihan file yang hanya bisa memilih satu file saja (perilaku standar jika tidak disebutkan) |
SWT.MULTI | Membuat kotak dialog pemilihan file yang bisa memilih beberapa file sekaligus |
Metode-metode pada FileDialog
| Metode | Penjelasan |
open() |
|
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(); } }
| Sisipan | Ukuran |
|---|---|
| kotakdialogfile.zip | 3.89 KB |


