EVENT
HANDLING
Event Handling adalah suatu metode
untuk menangani sebuah event/aksi yang diberikan penngguna 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.
Langkah-Langkah
Praktikum :
B.1. MEMBUAT PROGRAM EventButton.java
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();
}
}
|
B.2. 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
Radio Button 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();
}
}
|
B.3. 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();
}
}
|
B.3. 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 ie) {
JCheckBox source =
(JCheckBox)ie.getItemSelectable();
String
kosong = source.getText();
if(ie.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 ie) {
JCheckBox source =
(JCheckBox)ie.getItemSelectable();
String sepakBola =
source.getText();
if(ie.getStateChange()==ItemEvent.SELECTED)
fSepakBola.setText(""+sepakBola+",");
else
fSepakBola.setText("");
}
}
);
cbBasket.addItemListener(new
ItemListener() {
public void
itemStateChanged(ItemEvent ie) {
JCheckBox source =
(JCheckBox)ie.getItemSelectable();
String
basket = source.getText();
if(ie.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();
}
}
|
No comments:
Post a Comment