Cari artikel di situs ini

Event pada Shell

Versi ramah cetakVersi ramah cetak

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
ShellEventShellListener (dan ShellAdapter)shellActivated(ShellEvent)SWT.ActivateJendela diaktifkan
shellClosed(ShellEvent)SWT.CloseJendela Shell ditutup (dengan tombol X)
shellDeactivated(ShellEvent)SWT.DeactivateJendela dinonaktifkan
shellIconified(ShellEvent)SWT.IconifyJendela Shell diminimasi
shellDeiconified(ShellEvent)SWT.DeiconifyJendela 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();        
    }
}
SisipanUkuran
tutupshell.zip1.65 KB