KeyListener akan mendengarkan penekanan tombol oleh komponen yang berada dalam keadaan fokus. Semua komponen swing dapat menerima KeyListener sebagai Observer. KeyListener dapat mendengarkan tiga event berbeda : penekanan tombol, pelepasan tombol dan pengetikan tombol. Ketiganya ditangani oleh method yang berbeda-beda, yaitu :
● keyPressed : dipanggil ketika terjadi penekanan tombol
keyboard.
● keyReleased : dipanggil ketika tombol keyboard dilepaskan.
● keyTyped : dipanggil ketika tombol diketikkan, alias ditekan kemudian dilepaskan. Method ini dipanggil jika tombol yang ditekan mempunyai representasi karakter unicode, seperti tombol angka dan tombol huruf. Sedangkan penekanan tombol modifiers seperti ALT, CTRL, ARROW, CAPSLOCK, NUMLOCK, INS dan lainnya tidak akan mengakibatkan method ini dipanggil.
Ketiga method diatas menerima parameter KeyEvent. Untuk mengetes tombol apakah yang ditekan oleh user, digunakan method getKeyCode. Kemudian hasil kembalian method getKeyCode dibandingkan dengan field static kepunyaan class KeyEvent yang diawali dengan huruf VK, seperti : VK_ENTER, VK_A, VK_B, VK_1, VK_LEFT_ARROW dan seterusnya.
Method getKeyChar digunakan untuk menentukan karakter apa yang diwakili oleh tombol yang ditekan. Jika tombol yang ditekan adalah tombol modifiers maka method getKeyChar akan mengembalikan karakter KeyEvent.CHAR_UNDEFINED.
Aplikasi sederhana yang menangani penekanan tombol keyboard Untuk membuat aplikasi yang mendengarkan penekanan tombol keyboard seperti diatas lakukan langkah-langkah berikut ini :
1. Buat class JFrame baru, beri nama FrameKeyPressed.
2. Tambahkan dua buah JLabel, beri nama lblStatus dan lblKeyTyped.
3. lblStatus digunakan untuk menandakan adanya event keyPressed dan keyReleased yang terjadi berurutan
4. lblKeyTyped digunakan untuk menandakan adanya tombol yang diketik.
5. Pilih JFrame di Jendela Design, klik kanan, dan pilih menu :
Events > Key > keyPressed
6. Jendela Code akan terbuka, modifikasi method formKeyPressed
menjadi seperti berikut ini :
private void formKeyPressed(KeyEvent evt) {
// TODO add your handling code here:
if(evt.getKeyChar() == KeyEvent.CHAR_UNDEFINED)
lblStatus.setText(
"Anda menekan tombol : CHAR_UNDEFINED");
else
lblStatus.setText("Anda menekan tombol : " +
evt.getKeyChar());
}
7. Pilih JFrame di Jendela Design, klik kanan, dan pilih menu :
Events > Key > keyReleased
8. Jendela Code akan terbuka, modfikasi method formKeyReleased menjadi seperti berikut ini :
private void formKeyReleased(KeyEvent evt) {
// TODO add your handling code here:
if(evt.getKeyChar() == KeyEvent.CHAR_UNDEFINED)
lblStatus.setText(
"Anda melepaskan tombol : CHAR_UNDEFINED");
else
lblStatus.setText("Anda melepaskan tombol : " +
evt.getKeyChar());
}
9. Pilih JFrame di Jendela Design, klik kanan, dan pilih menu :
Events > Key > keyTyped
10. Jendela Code akan terbuka, modfikasi method formKeyTyped menjadi seperti berikut ini :
private void formKeyTyped(KeyEvent evt) {
// TODO add your handling code here:
lblKeyType.setText("Anda mengetikkan tombol : " +
evt.getKeyChar());
}
Tidak ada komentar:
Posting Komentar