Event merupakan sinyal yang memberitahukan program bahwa sesuatu telah terjadi. Event dapat digunakan untuk mengendalikan pernyataan atau blok pernyataan mana yang harus dieksekusi. Event yang dipicu atau dihasilkan akibat interaksi pengguna program, dapat ditanggapi atau diabaikan oleh program itu sendiri.
Contoh berikut ini adalah program sederhana AplikasiKaliTambah yang dapat digunakan untuk mengalikan atau menambah dua bilangan yang telah dimasukkan. Program memiliki bagian kode yang digunakan untuk menangani aksi ketika tombol Kali(x) atau Tambah(+) diklik. Program AplikasiKaliTambah dimaksudkan untuk memberikan gambaran bagaimana menangani aksi di pemrograman Java dilakukan. Berikut ini adalah listing kode program dan hasil eksekusinya:
Source Codenya
// Nama file : AplikasiKaliTambah.java
// Mendemonstrasikan penanganan aksi di Java
// mengimpor kelas
import
javax.swing.JFrame;
import
javax.swing.JPanel;
import
javax.swing.JTextField;
import
javax.swing.JButton;
import
javax.swing.JLabel;
import
java.text.DecimalFormat;
import
java.awt.GridLayout;
import
java.awt.BorderLayout;
import
java.awt.FlowLayout;
import
java.awt.Container;
import
java.awt.Font;
import
java.awt.Color;
import
java.awt.event.*;
// Deklarasi kelas
public
class
AplikasiKaliTambah
extends
JFrame
implements
ActionListener {
private
JTextField textNilai1, textNilai2, textHasil;
private
JLabel label1, label2, label3;
private
JButton buttonKali, buttonTambah;
private
JPanel panel1, panel2, panel3;
private
Font font1, font2;
private
DecimalFormat duaAngka;
public
AplikasiKaliTambah() {
label1 =
new
JLabel(
"Nilai Pertama"
);
label2 =
new
JLabel(
"Nilai Kedua"
);
label3 =
new
JLabel(
"Hasil kalkulasi"
);
panel1 =
new
JPanel();
panel1.setLayout(
new
GridLayout(
3
,
1
));
panel1.add(label1);
panel1.add(label2);
panel1.add(label3);
textNilai1 =
new
JTextField(
11
);
textNilai2 =
new
JTextField(
11
);
textHasil =
new
JTextField(
11
);
// Mengatur properti dari text field
font1 =
new
Font(
"Tahoma"
, Font.BOLD,
15
);
textNilai1.setHorizontalAlignment(JTextField.RIGHT);
textNilai1.setFont(font1);
textNilai2.setHorizontalAlignment(JTextField.RIGHT);
textNilai2.setFont(font1);
font2 =
new
Font(
"Tahoma"
, Font.BOLD + Font.ITALIC,
17
);
textHasil.setHorizontalAlignment(JTextField.RIGHT);
textHasil.setFont(font2);
textHasil.setForeground(Color.RED);
textHasil.setEditable(
false
);
panel2 =
new
JPanel();
panel2.setLayout(
new
GridLayout(
3
,
1
));
panel2.add(textNilai1);
panel2.add(textNilai2);
panel2.add(textHasil);
buttonKali =
new
JButton(
"Kali (x)"
);
buttonTambah =
new
JButton(
"Tambah (+)"
);
panel3 =
new
JPanel();
panel3.setLayout(
new
FlowLayout(FlowLayout.RIGHT));
panel3.add(buttonKali);
panel3.add(buttonTambah);
duaAngka =
new
DecimalFormat(
"0.00"
);
Container container = getContentPane();
container.setLayout(
new
BorderLayout());
container.add(panel1, BorderLayout.LINE_START);
container.add(panel2, BorderLayout.LINE_END);
container.add(panel3, BorderLayout.PAGE_END);
// Mendaftarkan listener
buttonKali.addActionListener(
this
);
buttonTambah.addActionListener(
this
);
}
// Mendeklarasikan ulang metoda actionPerformed (overriding)
public
void
actionPerformed(ActionEvent e) {
double
nilai1 = Double.parseDouble(textNilai1.getText());
double
nilai2 = Double.parseDouble(textNilai2.getText());
if
(e.getSource() == buttonKali) {
textHasil.setText(
""
+ duaAngka.format(nilai1 * nilai2));
}
else
if
(e.getSource() == buttonTambah) {
textHasil.setText(
""
+ duaAngka.format(nilai1 + nilai2));
}
}
// Metoda main
public
static
void
main(String[] args) {
AplikasiKaliTambah frame =
new
AplikasiKaliTambah();
frame.setTitle(
"Kelas AplikasiKaliTambah"
);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setSize(
280
,
150
);
frame.setVisible(
true
);
}
}
Listing kode di atas adalah contoh program yang akan merespon
interaksi pengguna program. Saat user berinteraksi dengan mengklik salah
satu tombol perintah (command button), misalnya tombol perintah
berlabel “Kali (x)”, maka tipe event ActionEvent akan dipicu. Reaksi
program pada event ini adalah nilai yang terdapat di kotak teks pertama
akan dikalikan dengan nilai di kotak teks kedua dan hasil perkalian akan
ditampilkan di kotak teks ketiga. Demikian juga dengan tombol perintah
berlabel “Tambah (+)”, nilai yang terdapat di kotak teks pertama akan
dijumlahkan dengan nilai yang terdapat di kotak teks kedua dan hasil
penjumlahan akan ditampilkan di kotak teks ketiga. Perkalian atau
penjumlahan kedua nilai merupakan respon program terhadap aksi yang
dilakukan oleh user dengan mengklik salah satu dari dua tombol perintah
tersebut.
Baris nomor 5 – 16 adalah pernyataan untuk mengimpor kelas yang digunakan untuk mendesain interfes grafis pengguna sebagaimana yang Anda lihat pada hasil eksekusi di listing kode program tersebut. Baris nomor 17 adalah pernyataan yang digunakan untuk mengimpor kelas-kelas event yang digunakan. Satu tipe event yang akan digunakan dalam program ini adalah kelas ActionEvent. Tipe event ini dapat dipicu salah satunya dengan mengklik tombol perintah.
Baris nomor 20 adalah deklarasi kelas AplikasiKaliTambah. Kelas AplikasiKaliTambah adalah turunan dari kelas JFrame dan mengimplementasikan interface ActionListener. Ini berarti bahwa selain digunakan sebagai form aplikasi, kelas AplikasiKaliTambah juga akan digunakan sebagai obyek pendengar action event (action listener object atau hanya listener object). Obyek pendengar event (kelas AplikasiKaliTambah) memiliki kepedulian untuk mendengarkan peristiwa event (ActionEvent) yang dihasilkan atau dipicu oleh tombol perintah (obyek dari kelas JButton) pada saat tombol tersebut diklik. Semua kelas dari obyek pendengar event harus mengimplementasikan interface yang bersesuaian dengan tipe event. Anda dapat mengamati pola penamaan antara event dan interfesnya dimana ActionEvent mempunyai interfes yang bersesuaian yaitu ActionListener.
Baris nomor 23 – 78 adalah pernyataan yang digunakan untuk mendesain interfes grafis (form aplikasi). Baris nomor 81 dan 82 adalah pernyataan untuk mendaftar obyek pendengar event (listener object). Obyek pendengar tersebut harus didaftar oleh objek sumber (source object) buttonKali dan buttonTambah (obyek dari kelas JButton) menggunakan metoda addActionListener. Sekali lagi, Anda dapat perhatikan pola penamaan metoda yang digunakan oleh obyek sumber untuk mendaftar obyek pendengar. Ketika tombol perintah diklik (ditekan dan dilepaskan kembali), tipe event ActionEvent akan dipicu. Kelas dari obyek pendengar event ini harus mengimplementasikan interfes ActionListiner dan obyek sumber harus mendaftar obyek pendengar menggunakan metoda addActionListener. Pola penamaan antara tipe event, interfes yang diimplementasikan dan metoda yang digunakan untuk mendaftar obyek pendengar dapat dirumuskan dengan XEvent, XListener dan addXListener.
Metoda addActionListener mempunyai satu parameter dimana argumen parameter tersebut adalah obyek dari kelas pendengar. Di pernyataan tersebut, argumen dari parameter metoda addActionListener adalah kata kunci this. Kata kunci this di sini mewakili obyek kelas AplikasiKaliTambah yang juga bertindak sebagai obyek pendengar.
Baris nomor 86 adalah pendeklarasian ulang metoda actionPerformed(ActionEvent e) yang didefinisikan di interfes ActionListener. Metoda ini mempunyai satu buah parameter e dengan tipe kelas ActionEvent. Obyek ActionEvent berisi properti yang berkaitan dengan tipe event yang bersesuaian, misalnya e.getSource digunakan untuk mengetahui obyek sumber (di contoh program bisa berupa obyek buttonKali atau buttonTambah) dan e.getActionCommand digunakan untuk mengembalikan label yang ada di tombol perintah. Metoda instan getSource dan getActionComman tersebut didefinisikan di kelas EventObject. Setiap kelas Java yang mengimplementasikan interfes, harus mendeklarasikan ulang semua metoda yang dimiliki oleh interfes yang diimplementasikan sekalipun metoda tersebut tidak digunakan (tidak diberi kode-kode untuk penanganan event). Metoda-metoda dari interfes listener (misalnya actionPerformed dari interfes ActionListener) yang dideklarasikan ulang di obyek pendengar disebut juga dengan handler.
Variabel nilai1 dan nilai2 di baris nomor 88 dan 89 digunakan untuk menyimpan nilai yang telah dimasukkan di kotak text pertama dan kedua setelah terlebih dahulu nilai tersebut dikonversi ke tipe data double. Di penyeleksian if baris nomor 91, apabila tombol perintah yang diklik oleh pengguna program adalah tombol perkalian (buttonKali), maka pernyataan baris nomor 92 akan dieksekusi yaitu mengalikan kedua nilai, memformat tampilan nilai hasil perkalian dan menampilkannya di kotak teks ketiga. Demikian pula dengan baris nomor 95, apabila tombol perintah yang diklik oleh pengguna program adalah tombol penjumlahan (buttonTambah), maka pernyataan di baris nomor 96 akan dieksekusi yaitu menjumlahkan kedua nilai, memformat tampilan nilai hasil penjumlahan dan menampilkannya di kotak teks ketiga
Baris nomor 5 – 16 adalah pernyataan untuk mengimpor kelas yang digunakan untuk mendesain interfes grafis pengguna sebagaimana yang Anda lihat pada hasil eksekusi di listing kode program tersebut. Baris nomor 17 adalah pernyataan yang digunakan untuk mengimpor kelas-kelas event yang digunakan. Satu tipe event yang akan digunakan dalam program ini adalah kelas ActionEvent. Tipe event ini dapat dipicu salah satunya dengan mengklik tombol perintah.
Baris nomor 20 adalah deklarasi kelas AplikasiKaliTambah. Kelas AplikasiKaliTambah adalah turunan dari kelas JFrame dan mengimplementasikan interface ActionListener. Ini berarti bahwa selain digunakan sebagai form aplikasi, kelas AplikasiKaliTambah juga akan digunakan sebagai obyek pendengar action event (action listener object atau hanya listener object). Obyek pendengar event (kelas AplikasiKaliTambah) memiliki kepedulian untuk mendengarkan peristiwa event (ActionEvent) yang dihasilkan atau dipicu oleh tombol perintah (obyek dari kelas JButton) pada saat tombol tersebut diklik. Semua kelas dari obyek pendengar event harus mengimplementasikan interface yang bersesuaian dengan tipe event. Anda dapat mengamati pola penamaan antara event dan interfesnya dimana ActionEvent mempunyai interfes yang bersesuaian yaitu ActionListener.
Baris nomor 23 – 78 adalah pernyataan yang digunakan untuk mendesain interfes grafis (form aplikasi). Baris nomor 81 dan 82 adalah pernyataan untuk mendaftar obyek pendengar event (listener object). Obyek pendengar tersebut harus didaftar oleh objek sumber (source object) buttonKali dan buttonTambah (obyek dari kelas JButton) menggunakan metoda addActionListener. Sekali lagi, Anda dapat perhatikan pola penamaan metoda yang digunakan oleh obyek sumber untuk mendaftar obyek pendengar. Ketika tombol perintah diklik (ditekan dan dilepaskan kembali), tipe event ActionEvent akan dipicu. Kelas dari obyek pendengar event ini harus mengimplementasikan interfes ActionListiner dan obyek sumber harus mendaftar obyek pendengar menggunakan metoda addActionListener. Pola penamaan antara tipe event, interfes yang diimplementasikan dan metoda yang digunakan untuk mendaftar obyek pendengar dapat dirumuskan dengan XEvent, XListener dan addXListener.
Metoda addActionListener mempunyai satu parameter dimana argumen parameter tersebut adalah obyek dari kelas pendengar. Di pernyataan tersebut, argumen dari parameter metoda addActionListener adalah kata kunci this. Kata kunci this di sini mewakili obyek kelas AplikasiKaliTambah yang juga bertindak sebagai obyek pendengar.
Baris nomor 86 adalah pendeklarasian ulang metoda actionPerformed(ActionEvent e) yang didefinisikan di interfes ActionListener. Metoda ini mempunyai satu buah parameter e dengan tipe kelas ActionEvent. Obyek ActionEvent berisi properti yang berkaitan dengan tipe event yang bersesuaian, misalnya e.getSource digunakan untuk mengetahui obyek sumber (di contoh program bisa berupa obyek buttonKali atau buttonTambah) dan e.getActionCommand digunakan untuk mengembalikan label yang ada di tombol perintah. Metoda instan getSource dan getActionComman tersebut didefinisikan di kelas EventObject. Setiap kelas Java yang mengimplementasikan interfes, harus mendeklarasikan ulang semua metoda yang dimiliki oleh interfes yang diimplementasikan sekalipun metoda tersebut tidak digunakan (tidak diberi kode-kode untuk penanganan event). Metoda-metoda dari interfes listener (misalnya actionPerformed dari interfes ActionListener) yang dideklarasikan ulang di obyek pendengar disebut juga dengan handler.
Variabel nilai1 dan nilai2 di baris nomor 88 dan 89 digunakan untuk menyimpan nilai yang telah dimasukkan di kotak text pertama dan kedua setelah terlebih dahulu nilai tersebut dikonversi ke tipe data double. Di penyeleksian if baris nomor 91, apabila tombol perintah yang diklik oleh pengguna program adalah tombol perkalian (buttonKali), maka pernyataan baris nomor 92 akan dieksekusi yaitu mengalikan kedua nilai, memformat tampilan nilai hasil perkalian dan menampilkannya di kotak teks ketiga. Demikian pula dengan baris nomor 95, apabila tombol perintah yang diklik oleh pengguna program adalah tombol penjumlahan (buttonTambah), maka pernyataan di baris nomor 96 akan dieksekusi yaitu menjumlahkan kedua nilai, memformat tampilan nilai hasil penjumlahan dan menampilkannya di kotak teks ketiga
Sumber : http://www.termasmedia.com/2012-05-29-02-56-17/java/266-memahami-cara-menangani-aksi-event-di-pemrograman-java.html
Tidak ada komentar:
Posting Komentar