Kamis, 15 Desember 2011

Tombol Akselerator dan Tombol Sistem Jendela

Tombol Akselerator

Akselerator adalah tombol shortcut ke salah satu menu, misalnya pada kebanyakan program pengolah kata menekan tombol dan S artinya menyimpan teks yang sedang diedit. Akselerator biasanya berupa rangkaian tombol yang ditekan bersamaan, bisa 2 tombol seperti contoh di atas atau mungkin lebih, misalnya pada Firefox, tombol + + J membuka konsol kesalahan (error console).

Akselerator selalu berhubungan dengan menu, sehingga akselerator bersifat global, yang berarti kita bisa menekan tombol akselerator dari dalam widget manapun yang sedang aktif pada saat itu. Ketika akselerator dipanggil, maka tombol-tombol yang ditekan akan dikonsumsi langsung oleh aplikasi dan tidak diberikan kepada widget apa-apa.

Akselerator direpresentasikan pada SWT dalam bentuk kode integer tertentu. Kode integer tersebut berisi gabungan beberapa tombol, yaitu tombol pengubah (seperti , , ) dan satu tombol lain yang berupa karakter atau keyCode (seperti tanda panah, F1 hingga F15, , dll). Lihat bahasan tentang fokus kontrol untuk mengerti lebih jauh tentang bagaimana penanganan tombol pada SWT. Tombol akselerator tidak bisa hanya terdiri dari tombol pengubah saja.

Berikut ini adalah beberapa contoh akselerator.

AkseleratorRangkaian Tombol
SWT.CONTROL + 'A' +
SWT.SHIFT + SWT.ARROW_UP + tombol panah ke atas
SWT.MOD1 + 'S'Tombol pengubah pertama (biasanya atau ) +
SWT.MOD1 + SWT.MOD2 + 'B'Tombol pengubah pertama + Tombol pengubah kedua +
Akselerator diberikan kepada menu atau toolbar dengan menggunakan metode setAccelerator(int kodeAkselerator) di mana kodeAkselerator adalah kode akselerator seperti dicontohkan pada tabel di atas. Untuk mereset akselerator, isikodeAkselerator dengan 0.

Untuk mengambil tombol akselerator suatu menu atau toolbar bisa digunakan dengan menggunakan metodegetAccelerator() yang mengembalikan nilai integer.

Misalnya jika item adalah suatu item pada menu, maka potongan kode berikut akan menambahkan akselerator pada item tersebut :
item.setText("Pilih &Semua\tCtrl+S");
item.setAccelerator(SWT.MOD1 + 'S');
item.addListener(SWT.Selection, new Listener() {
    public void handleEvent(Event e) {
        System.out.println("Item dipilih.");
    }
});
Karakter '\t' di dalam setText memberi tahu SWT bahwa karakter setelah itu adalah tombol akseleratornya. Perlu dicatat bahwa hanya menambahkan teks akselerator pada metode setText() tidak membuat tombol akselerator otomatis ditambahkan dalam metode setAccelerator(). Menambahkan teks akselerator pada setText() berfungsi untuk membetulkan kesalahan yang terjadi jika tombol akselerator tidak terdapat pada platform yang dituju. Misalnya pada contoh di atas, tombol tidak ada pada Macintosh, akan tetapi SWT akan mengganti tampilan Ctrl-S menjadi -S.

Tombol Sistem Jendela

Tombol yang diproses oleh sistem jendela tidak akan sampai pada aplikasi kita. Misalnya, tombol Alt-F4 pada beberapa sistem akan menutup jendela yang aktid. Manager jendela akan melakukan aksi terlebih dahulu dan tombol tersebut akan dikonsumsi oleh manager jendela. Manager jendela tidak sama dengan sistem operasi. Pada Windows, manager jendela itu terintegrasi dengan sistem operasi. Pada Linux misalnya manager jendela bisa bermacam-macam, misalnya KDE dan Gnome.

Tombol-tombol mana yang akan dimanage oleh manager jendela berbeda-beda, tergantung dari sistem jendela tersebut. Karena tidak adanya kesamaan pada setiap manager jendela, maka kita tidak bisa mencegat penekenan tombol ini misalnya dialihkan untuk melakukan fungsi lain.

Tidak ada komentar:

Posting Komentar