Assalamu’alaikum
warahmatullahi wabarakatuh,
Selamat datang di blog saya...
Jadi pada kesempatan kali ini saya akan membahas tugas
praktikum saya yang keempat tentang Event Handling. Untuk yang belum lihat
postingan sebelumnya dapat dilihat dari teks link di bawah ini ya :
Berikut
ini adalah materi latihan ke – 4 yang akan kita bahas, untuk lebih memahami
latihan ke-4 ini kita bahas terlebih dahulu apa yang di maksud dengan
Event Handling.
DASAR
TEORI
Event Handling adalah suatu
metode untuk menangani
sebuah event/aksi yang diberikan pengguna kepada
suatu komponen GUI. Event adalah suatu
peristiwa yang dipicu oleh pengguna
pada suatu komponen,
misalnya tombol ditekan. Dua
paket yang biasa digunakan untuk
menangani kejadian adalah
java.awt.event dan javax.swing.event. Event handling dalam
menangani event terbagi
menjadi 3 macam yaitu Event Surce, Event Listener dan
Event Handler.
1.
Event Source
Event source
adalah komponen yang
mendapatkan suatu event
yang kemudian ditangkap oleh Event
Listener. Event Source dapat dibedakan dari penamaan komponen itu sendiri, misalnya
tombolSimpan, tombolHapus dan lainnya. Dengan penamaan Event Source ini,
sebuah Event Listener
akan dapat mendeteksi
dari mana Event
Listener tersebut berasal.
2.
Event
Listener
Event Listener
digunakan untuk menangkap
event yang terjadi
pada komponen/Event Source. Dibawah ini disajikan beberapa listener yang
dapat digunakan dalam mendeteksi event.
|
Event
Listener
|
Fungsi
|
|
ActionListener
|
Untuk menangani
reaksi atas perubahan status pada objek
yang digunakan.
Misalnya akibat penekanan tombol mouse
atau keyboard.
|
|
AdjustmentListener
|
Untuk menangani
reaksi atas perubahan status pada objek
yang digunakan pada
saat pemyesuaian. misalnya akibat dari
penggeseran
scrollbar.
|
|
FocusListener
|
Untuk menangani
reaksi atas perubahan status akibat fokus
berada pada objek
tertentu. Misalnya kursor berada pada
textfield.
|
|
ItemListener
|
Untuk menangani
reaksi atas perubahan status pada pilihan
yang terdapat pada
objek tertentu. Misalnya pemilihan pada
checkbox atau
radiobutton.
|
|
KeyListener
|
Untuk menangani
reaksi dari keyboard. Misalnya penekanan
tombol Ctrl, Alt dan
sebagainya.
|
|
Mouse Listener
|
Untuk menangani
reaksi dari penekanan tombol pada mouse
|
|
MouseMotionListener
|
Untuk menangani
reaksi akibat mouse digerakkan, misalkan
melewati lokasi
komponen tertentu.
|
|
MouseWheelListener
|
Untuk menangani
reaksi event scroll pada mouse
|
|
TextListener
|
Untuk menangani event
pada teks
|
|
WindowListener
|
Untuk menangani
reaksi atas perubahan jendela akibat ukuran diperbesar, dikecilkan, dipindah
maupun ditutup.
|
|
WindowFocusListener
|
Untuk menangani
reaksi pada jendela.
|
|
WindowStateLIstener
|
Untuk menangani status
event jendela.
|
3.
Event Handler
Event Handler
berupa blok method
dari listener yang
menentukan proses
selanjutnya setelah komponen
mendapatkan event. Misalkan
pada event tombol
simpan ditekan, event
listener akan menangkap
event pada Event
Source tombol Simpan, kemudian Event Handler
akan menyimpan data
yang didefenisikan pada
blok Event Handler.
Berikut
ini latihan program Event Handling yang akan di buat :
A.
Membuat Program EventButton.java
Kode
Program
|
import java.awt.*;
import javax.swing.*;
import java.awt.event.*;
class ButtonHandling extends
JFrame implements ActionListener {
private JLabel lbl;
private JButton btnSetuju;
private JButton btnBatal;
public ButtonHandling() {
super("Coba
Button Handling");
lbl = new
JLabel("Status : None");
lbl.setHorizontalAlignment(SwingConstants.CENTER);
btnSetuju = new
JButton("Setuju");
btnBatal = new
JButton("Batal");
btnSetuju.addActionListener(this);
btnBatal.addActionListener(this);
setLayout(new BorderLayout());
add(lbl, "North");
add(btnSetuju, "West");
add(btnBatal, "East");
pack();
setResizable(false);
setLocation(100,100);
setDefaultCloseOperation(3);
setVisible(true);
}
public void
actionPerformed(ActionEvent e) {
if(e.getSource()==btnSetuju) {
lbl.setText("Status
= Setuju");
}
if(e.getSource()==btnBatal) {
lbl.setText("Status
= Batal");
}
}
}
public class
EventButton {
public static void
main(String []args) {
new ButtonHandling();
}
}
|
Simpan dengan
nama EventButton.java selanjutnya :
1.
CTRL+1 untuk
mengkompile program java
2.
CTRL+2 untuk
menjalankan program
Hasil Output Program
Pada program diatas pemberian event handling diberikan
pada objek button. Event source merupakan komponen objek GUI yang di beri event
terdapat pada button batal dan button setuju. Event Listener yang digunakan
yaitu action listener dimana program menangkap aksi dari event source dengan
mengklik tombol mouse. Selanjutnya penanganan event handler terdapat pada label
dari status dimana ketika kita mengklik tombol Setuju maka yang semula “Status
: None” menjadi “Status : Setuju”.
B.
Membuat Program EventRadio.java
|
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
class RadioHandling extends JFrame implements ItemListener {
private JTextField teks;
private JPanel panel;
private JRadioButton rbTn1,
rbTn2, rbTn3;
public RadioHandling() {
setTitle("Coba
RadioButton Handling");
teks = new
JTextField ("Jenis Kelamin : Pilihan");
teks.setHorizontalAlignment (SwingConstants.CENTER);
panel = new
JPanel (new
FlowLayout ());
rbTn1 = new
JRadioButton("Pria");
rbTn2 = new
JRadioButton("Wanita");
rbTn3 = new
JRadioButton("??");
ButtonGroup group = new
ButtonGroup();
group.add(rbTn1);
group.add(rbTn2);
group.add(rbTn3);
rbTn1.addItemListener(this);
rbTn2.addItemListener(this);
rbTn3.addItemListener(this);
setLayout (new BorderLayout());
add(teks, "North");
add(panel, "West");
panel.add(rbTn1);
panel.add(rbTn2);
panel.add(rbTn3);
pack();
setVisible (true);
setLocation(200,200);
setDefaultCloseOperation(EXIT_ON_CLOSE);
}
public void itemStateChanged(ItemEvent event) {
if (event.getSource()==rbTn1) {
if(event.getStateChange()==ItemEvent.SELECTED)
teks.setText ("Jenis Kelamin : Pria");
}
if (event.getSource()==rbTn2) {
if(event.getStateChange()==ItemEvent.SELECTED)
teks.setText
("Jenis Kelamin : Wanita");
}
if (event.getSource()==rbTn3) {
if(event.getStateChange()==ItemEvent.SELECTED)
teks.setText
("Jenis Kelamin : ??");
}
}
}
public class EventRadio {
public static void
main(String []args) {
new RadioHandling();
}
}
|
Simpan dengan
nama EventRadio.java selanjutnya :
1.
CTRL+1 untuk
mengkompile program java
2.
CTRL+2 untuk
menjalankan program
Hasil
Output Program
Pada program diatas kita menggunakan event handling
dengan event source radio button dimana kita menggunakan event listener yang digunakan
yaitu item listener yang menangani reaksi atas perubahan status pada pilihan yang
terdapat pada objek tertentu dan event handler terdapat pada teks label “Jenis
kelamin : Pilihan” dan saat kita memilih salah satu dari pilihan radio button
yang kita klik makan status pilihan akan berubah.
C.
Membuat Program
EventComboBox.java
|
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
class ComboBoxHandling extends JFrame implements ItemListener
{
private
JTextField teks;
private String Status[] = {"Setuju", "Batal"};
private JComboBox cbStatus;
public ComboBoxHandling() {
super("Coba
Combo Box Handling");
teks = new JTextField("Status : None");
teks.setHorizontalAlignment(SwingConstants.CENTER);
cbStatus = new
JComboBox(Status);
cbStatus.addItemListener(this);
setLayout(new BorderLayout());
add(teks, "North");
add(cbStatus, "South");
pack();
setVisible(true);
setDefaultCloseOperation(EXIT_ON_CLOSE);
}
public void itemStateChanged(ItemEvent event) {
if(event.getStateChange()==ItemEvent.SELECTED) {
if(cbStatus.getSelectedIndex()==0)
teks.setText("Setuju");
else
if(cbStatus.getSelectedIndex()==1)
teks.setText("Batal");
}
}
}
public class EventComboBox {
public static void main (String[] args) {
new ComboBoxHandling();
}
}
|
Simpan dengan
nama EventComboBox.java selanjutnya :
1.
CTRL+1 untuk
mengkompile program java
2.
CTRL+2 untuk
menjalankan program
Hasil
Output Program
Program ini Sama seperti program EventRadio.java hanya
saja event source nya kita menggunakan button combobox dan program ini juga
untuk memberikan aksi pilihan yang akan ditampilkan pada teks label event
handlernya.
D.
Membuat Program
PanggilInputData.java
|
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
class InputData extends JDialog {
JDesktopPane view = new
JDesktopPane();
JLabel lNama = new
JLabel("Nama Lengkap : ");
final JTextField fNama = new
JTextField(10);
JTextField fJnsKlmn = new
JTextField() ;
JTextField fAgama = new
JTextField();
JTextField fSepakBola = new
JTextField();
JTextField fBasket = new
JTextField();
JTextField fKosong = new
JTextField();
JLabel lJnsKlmn = new
JLabel("Jenis Kelamin : ");
JRadioButton rbPria = new
JRadioButton( "Laki-laki");
JRadioButton rbWanita = new JRadioButton("Perempuan");
JLabel lAgama = new
JLabel("Agama: ");
String [] namaAgama = {"Islam", "Kristen", "Katolik","Hindu", "Budha"};
JComboBox cmbAgama = new
JComboBox(namaAgama);
JLabel lHobby = new
JLabel("Hobby: ");
JCheckBox cbSepakBola = new
JCheckBox("Sepakbola");
JCheckBox cbBasket = new
JCheckBox("Basket");
JCheckBox cbKosong = new
JCheckBox("Tidak Ada");
JButton btnSave = new
JButton("OK");
JButton btnCancel = new
JButton("CANCEL");
public InputData()
{ setTitle("INPUT DATA");
setSize(350,250);
setResizable(false);
ButtonGroup group = new
ButtonGroup();
group.add(rbPria);
group.add(rbWanita);
setLayout(null);
add(lNama);
add(fNama);
add(lJnsKlmn);
add(rbPria);
add(rbWanita);
add(lAgama);
add(cmbAgama);
add(lHobby);
add(cbSepakBola);
add(cbBasket);
add(cbKosong);
add(btnSave);
add(btnCancel);
lNama.setBounds(10,10,120,20);
fNama.setBounds(130,10,150,20);
lJnsKlmn.setBounds(10,35,120,20);
rbPria.setBounds(130,35,100,20);
rbWanita.setBounds(230,35,100,20);
lAgama.setBounds(10,60,150,20);
cmbAgama.setBounds(130,60,120,20);
lHobby.setBounds(10,85,120,20);
cbSepakBola.setBounds(130,85,150,20);
cbBasket.setBounds(130,110,150,20);
cbKosong.setBounds(130,135,150,20);
btnSave.setBounds(50,170,120,20);
btnCancel.setBounds(180,170,120,20);
setVisible(true);
btnSave.addActionListener(new
ActionListener() {
public void
actionPerformed(ActionEvent ae) {
view("Tampilan");
}
}
);
btnCancel.addActionListener(new ActionListener() {
public void
actionPerformed(ActionEvent ae) {
fNama.setText(null);
cmbAgama.setSelectedIndex(0);
cbSepakBola.setSelected(false);
cbBasket.setSelected(false);
cbKosong.setSelected(false);
cbSepakBola.setEnabled(true);
cbBasket.setEnabled(true);
}
}
);
cbKosong.addItemListener(new ItemListener() {
public void
itemStateChanged(ItemEvent ae) {
JCheckBox source = (JCheckBox)ae.getItemSelectable();
String kosong =
source.getText();
if(ae.getStateChange()==ItemEvent.SELECTED)
{
cbSepakBola.setSelected(false);
cbBasket.setSelected(false);
cbSepakBola.setEnabled(false);
cbBasket.setEnabled(false);
fKosong.setText(""+kosong+",");
}
else
{
cbSepakBola.setEnabled(true);
cbBasket.setEnabled(true);
fKosong.setText("");
}
}
}
);
rbPria.addActionListener(new ActionListener() {
public void
actionPerformed(ActionEvent ae) {
String pria =
ae.getActionCommand();
fJnsKlmn.setText(""+pria);
}
}
);
rbWanita.addActionListener(new ActionListener() {
public void
actionPerformed(ActionEvent ae) {
String wanita =
ae.getActionCommand();
fJnsKlmn.setText(""+wanita);
}
}
);
cbSepakBola.addItemListener(new ItemListener() {
public void
itemStateChanged(ItemEvent ae) {
JCheckBox source = (JCheckBox)ae.getItemSelectable();
String sepakBola =
source.getText();
if(ae.getStateChange()==ItemEvent.SELECTED)
fSepakBola.setText(""+sepakBola+",");
else
fSepakBola.setText("");
}
}
);
cbBasket.addItemListener(new ItemListener() {
public void
itemStateChanged(ItemEvent ae) {
JCheckBox source = (JCheckBox)ae.getItemSelectable();
String basket =
source.getText();
if(ae.getStateChange()==ItemEvent.SELECTED)
fBasket.setText(""+basket+",");
else
fBasket.setText("");
}
}
);
}
public int view(String action) {
String nama =
fNama.getText ();
String jnsklmn =
fJnsKlmn.getText ();
String agama = String.valueOf(cmbAgama.getSelectedItem());
String cbSepakBola =
fSepakBola.getText();
String cbBasket =
fBasket.getText();
String cbKosong =
fKosong.getText();
String data = "DATA-DATA MAHASISWA :\n\nNama : " +nama+"\n\nJenis Kelamin : " +jnsklmn+"\n\nAgama : " +agama+"\n\nHobby : "+cbSepakBola+""+cbBasket+""+cbKosong+"";
int message =
JOptionPane.showConfirmDialog(null, data,"DATA MAHASISWA",JOptionPane.CLOSED_OPTION,JOptionPane.QUESTION_MESSAGE);
return message;
}
}
class PanggilInputData {
public static void
main(String [] args){
new InputData();
}
}
|
Simpan dengan
nama PanggilInputData.java selanjutnya :
1.
CTRL+1 untuk
mengkompile program java
2.
CTRL+2 untuk
menjalankan program
Hasil
Output Program
Kita input terlebih dahulu
data seperti contoh berikut ini selanjutnya klik button OK maka akan muncul tab
jendela baru hasil data yang kita input.
Berikut ini tampilan dari hasil
input data setelah kita klik button OK
Sekian Penjelasan Saya Tentang Materi Latihan Event Handling Java
Praktikum Berorientasi Objek II
Terimakasih dan Semoga Bermanfaat
----***----
Wassalammu’alaikum
warahmatullahi wabarakatuh
Tidak ada komentar:
Posting Komentar