EVENT HANDLING
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 komonen, misalnya tombol ditekan. Dua paket biasa digunakan
untuk menangani kejadian adalah java.awt.event dan javax.swing.event.
Event handling dalam menangani event terbagi 3 yaitu
:
1. Event
source
2. Event
listener
3. Event
handler
1. Event
source.
Adalah komponen yang mendapatkan
event yang kemudian ditangkap oleh event listener. Event ini dapat dibedakan
dari penanaman komponen itu sendiri.
Misalnya :
TombolSimpan, tombolHapus dan
lainnya.
Dengan penanaman event source ini
digunakan event listener yang akan cepat mendeteksi dari mana event listener
berasal.
2. Event
listener.
Digunakan untuk menangkap event
yang terjadi pada komponen/event source.
Dibawah ini disajikan beberapa
listener yang dapat digunakan dalam mendeteksi event, yaitu :
a. ActionListener.
Berfungsi
untuk menangani reaksi atas perubahan status pada objek yang digunakan.
Misalnya akibat penekanan tombol mouse atau keyboard.
b. AdjustmentListener.
berfungsi
untuk menangani reaksi atas perubahan status pada objek yang digunakan pada
saat penyesuian.
Misalnya
akibat dari penggeseran scrollbar.
c. FocusLiatener.
Berfungsi
untuk menangani atas perubahan status akibat fokus berada pada objek tertentu.
Misalnya
pada kursor berada pada textfield.
d. ItemListener.
Berfungsi
untuk menangani reaksi atas perubahan status pada pilihan yang terdapat pada
objek tertentu.
Misalnya
pemilihan pada checkbox atau radiobutton.
e. KeyListener.
Berfungsi
untuk menangani reaksi dari keyboard.
Misalnya
penekanan tombol ctrl, alt dan sebagainya
f. MouseListener.
Berfungsi
untuk menangani reaksi dari penekanan tombol pada mouse.
g. MouseMontionListener.
Berfungsi
untuk menangani reaksi akibat mouse digerakkan.
Misalnya
melewati lokasi komponen tertentu.
h. MouseWheelListener.
Berfungsi
untuk menangani reaksi event scroll pada mouse.
i.
TextListener.
Berfungsi
untuk menangani event pada teks.
j.
WindowListener.
Berfungsi
untuk menangani reaksi atas perubahan jendela akibat ukuran diperbesar,
diperkecil, dipindahkan maupun ditutup.
k. WindowFocusListener.
Berfungsi
menangani reaksi pada jendela.
l.
WindowStateListener.
Befungsi
untuk menangani status event jendela.
3. Event
Handler.
Event handler merupakan blok method
dari listener yang menentukan proses selanjutnya setelah komponen mendapatkan
event.
Misalnya pada event tombol simpan
ditekan, event listener akan menangkap event pada source tombol simpan,
kemudian event handler akan menyimpan data yang didefenisikan pada blok event
handler.
CONTOH
PROGRAM
a.
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();
}
}
OUTPUT
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();
}
}
OUTPUT
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("Satus : 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();
}
}
OUTPUT
a. 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,35,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,"DATAMAHASISWA",
JOptionPane.CLOSED_OPTION, JOptionPane.QUESTION_MESSAGE
);
return message;
}
}
class PanggilInpuData{
public static void main(String [] args){
new InputData();
}
}
TUGAS
import
java.awt.*;
import
java.awt.event.*;
import
javax.swing.*;
class
CheckBoxHandling extends JFrame implements ItemListener {
private
JTextField teks;
private
JPanel panel;
private
JCheckBox a1, a2, a3;
public
CheckBoxHandling() {
setTitle("Coba
CheckBox Handling");
teks
= new JTextField("Jenis Kelamin : Pilihan");
teks.setHorizontalAlignment(SwingConstants.CENTER);
panel
= new JPanel(new FlowLayout());
a1
= new JCheckBox("Pria");
a2
= new JCheckBox("Wanita");
a3
= new JCheckBox("Banci");
ButtonGroup
group = new ButtonGroup();
group.add(a1);
group.add(a2);
group.add(a3);
a1.addItemListener(this);
a2.addItemListener(this);
a3.addItemListener(this);
setLayout(new
BorderLayout());
add(teks,
"North");
add(panel,"West");
panel.add(a1);
panel.add(a2);
panel.add(a3);
pack();
setVisible(true);
setLocation(200,200);
setDefaultCloseOperation(EXIT_ON_CLOSE);
}
public
void itemStateChanged(ItemEvent event) {
if(event.getSource()==a1){
if(event.getStateChange()==ItemEvent.SELECTED)
teks.setText("Jenis
Kelamin : Pria");
}
if(event.getSource()==a2){
if(event.getStateChange()==ItemEvent.SELECTED)
teks.setText("Jenis
Kelamin : Wanita");
}
if(event.getSource()==a3){
if(event.getStateChange()==ItemEvent.SELECTED)
teks.setText("Jenis
Kelamin : Banci");
}
}
}
public
class CheckBox {
public
static void main(String[] args) {
new
CheckBoxHandling();
}
}
Tidak ada komentar:
Posting Komentar