Navigasi buku
Event pada Shell
Event berikut hanya terdapat pada widget Shell.
| Kelas Event (event bertipe) | Interface/Kelas Listener (listener bertipe) | Metode (listener bertipe) | Jenis event (event tanpa tipe) | Penjelasan |
| ShellEvent | ShellListener (dan ShellAdapter) | shellActivated(ShellEvent) | SWT.Activate | Jendela diaktifkan |
| shellClosed(ShellEvent) | SWT.Close | Jendela Shell ditutup (dengan tombol X) | ||
| shellDeactivated(ShellEvent) | SWT.Deactivate | Jendela dinonaktifkan | ||
| shellIconified(ShellEvent) | SWT.Iconify | Jendela Shell diminimasi | ||
| shellDeiconified(ShellEvent) | SWT.Deiconify | Jendela Shell dibuka (restore) |
Untuk menambahkan event bertipe pada suatu shell, gunakan metode addShellListener(ShellListener listener).
Berikut ini adalah contoh program untuk memberikan kotak dialog yang menanyakan apakah kotak dialog akan ditutup, kemudian menampilkan tombol "Yes/No/Cancel". Program ini menangkap event SWT.Close yang dilempar ketika program hendak ditutup. Jika jawaban user "Cancel", maka variabel doit di dalam event akan diisi dengan false, yang berarti membatalkan event menutup program.

Berikut ini adalah listing program lengkap, yang juga dapat diunduh di sini untuk diimport ke dalam Eclipse.
package com.lyracc.tutupshell; import org.eclipse.swt.*; import org.eclipse.swt.widgets.*; import org.eclipse.swt.events.*; public class TutupShell { /** * @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("Tutup Shell"); // Membuat event listener shell menggunakan listener bertipe ShellAdapter listener = new ShellAdapter() { @Override // Kita tindih metode shellClosed untuk mencegat event penutupan shell public void shellClosed(ShellEvent e) { // Ambil shell dari mana event ini dikirim Shell induk = (Shell)e.widget; // Buat message box yang dengan modalitas aplikasi // dan tombol yes, no, cancel MessageBox box = new MessageBox(induk, SWT.YES | SWT.NO | SWT.CANCEL | SWT.APPLICATION_MODAL); // Set judul kotak dialog dengan judul yang sama dengan judul jendela box.setText(induk.getText()); // Set pesan yang akan ditampilkan box.setMessage("Simpan hasil kerjaan Anda?"); // Buka pesan dialog, jika hasilnya "Cancel" batalkan penutupan // kotak dialog dengan mengeset doit = false; // Jawaban lainnya (yes dan no) akan meneruskan penutupan aplikasi switch (box.open()) { case SWT.YES: break; case SWT.NO: break; case SWT.CANCEL : e.doit = false; break; } } }; // Tambah listener pada shell utama shell.addShellListener(listener); shell.open(); while (!shell.isDisposed()) if (!display.readAndDispatch()) display.sleep(); display.dispose(); } }
| Sisipan | Ukuran |
|---|---|
| tutupshell.zip | 1.65 KB |


