Kamis, 09 Mei 2019

PERTEMUAN 9 EVENT HANDLING

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

PERTEMUAN 11 KOMPONEN KOMPONEN SWING LANJUTAN.

KOMPONEN – KOMPONEN SWING LANJUTAN Swing merupakan alternatif lain untuk mengimplementasikan pemprograman window. Walaupun diimplement...