Kamis, 02 Mei 2019

Pertemuan X

                                       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 Suorce
* Event Listener 
* Event Handler


1. Event Suorce
     Event Suorce adalah komponen yang mendapatkan suatu event yang kemudian diungkap oleh Event Listener. Event Suorce dapat dibedakan dari penamaan komponen itu sendiri,misalnya tombol simpan,tombolHapus dan lainnya. Dengan penamaan Event Suorce 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 Suorce. Dibawah ini disajikan beberapa listener yang dapat digunakan dalam mendeteksi event

Event Listener
Fungsi
Action Listener
Untuk menangani reaksi atas perubahan status pada objek yang digunakan. Misalnya akibat penekanan tombol mouse atau keyboard
Adjustment  Listener
Untuk menangani  reaksi atas perubahan status pada objek yang digunakan pada saat penyesuaian.misalnya akibat dari pergeseran scrollbar
Focus Listener
Untuk menangani reaksi atas perubahan status akibat fokus berada pada objek tertentu Misalnya kursor berada pada textfield
Item Listener
Untuk menangani reaksi atas perubahan status pada pilihan yang terdapat pada objek tertentu . Misalnya pemilihan pada checkbox atau radiobutton
Key Listener
Untuk menangani reaksi dari keyboard. Misalnya penekanan tombol Ctrl,Alt dan sebagainya
Mouse Listener
Untuk menangani reaksi dari penekanan tombol padda mouse
Mouse Motion Listener
Untuk menangani reaksi akibat mouse digerakkan,misalkan melewati lokasi komponen tertentu .
Mouse Whel Listener
Untuk menangani reaksi event pada teks
Text Listener
Untuk menangani event pada teks
Window Listener
Untuk menangani reaksi atas perubahan jendela akibat ukuran diperbesar,dikecilkan,dipndah maupun ditutup
Window Focus Listener
Untuk menangani reaksi pada jendela
Window State Listener
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 Suorce tombol Simpan,kemudian  Event Hnadler akan menyimpan data yang didefenisikan pada blok Event Handler.


LANGKAH-LANGKAH PRAKTIKUM

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();
    }
}


Outputnya :




B. Membuat Program EventRadio.java

import java.awt.*;
import javax.swing.*;
import java.awt.event.*;

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();
      }
    }

Outputnya :



C. Membuat Program Event Combo Box.java

import java.awt.*;
import javax.swing.*;
import java.awt.event.*;

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();
      }
}

Outputnya :





D. Membuat Program PanggilInputData


import javax.swing.*;
import java.awt.*;
import java.awt.event.*;

class InputData extends JDialog {
     JDekstopPane view = new JDekstopPane();
           JLabel lNama = new JLabel("Nama Lengkap : ");
           JTextFieled fNama = new JtextFieled(10);
           JTextFieled fJnsKlmn = new JtextFieled();
           JTextFieled fAgama = new JtextFieled();
           JTextFieled fSepakBola = new JtextFieled();
           JTextFieled fBasket = new JtextFieled();
           JTextFieled fKosong = new JtextFieled();
           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 JButtonGroup();
                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, 110, 150, 20);
                 lHobby.setBounds (10, 85, 120, 20);
                 cbSepakBola.setBounds(130, 85, 150, 20);
                 cbBasket.setBounds(130, 110, 150, 20);
                 cbKosong.setBounds(50, 170, 120, 20);
                 setVisible(true);

                 btsSave.addActionListener(new ActionListener() {
                      public void actionPerformed(ActionEvent ae) {
                           view("Tampilan");
                      }
                 }

                 btnCancel.addActionListener(new ActionListener() {
                      public void actionPerformed(ActionEvent ae) {
                           fNama.setText(null);
                           cmbAgama.setSelectedIndeks(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     =     (JCheckBox)ie.getItemSelectable();
String kosong = source.getText();
if(ie.getStateChange()==ItemEvent.SELECTED)
{
cbSepakBola.setSelected(false);
cbBasket.setSelected(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 depskBola = source.getText();
if(ie.getStateChange()==ItemEvent.SELECTED)
     fSepakBola.setText(""+sepakBola+",");
else
     fSepakBola.setText("");
        }
          }
    };
          }
          public int view(String action) {
  String nama = fNama.getText();
  String jnsklmn = fJnsKlmn.getText();
  String  agama = String.valueOf(cmbAgama.getSelectedItem());
  String cbSepakbola = fBasket.getText();
  String cbKosong = fKosong.getText();
  String data =  "DATA-DATA MAHASISWA :\n\nAgama : "+nama+"\n\nJenis Kelamin : "+jnsklmn+"\n\nAgama : "+agama+"\n\nHobby  "+cbSepakbola+""+cbBasket+""+cbKosong+"";
  int message =  JOptionPane.showConfirmDialog(null,data,"DATA MAHSISWA".JOptionPane.CLOSED_OPTION,JOptionPane.QUESTION_MESSAGE);
                  {
  return message;
      }
}

  class PanggilInputData {
  public static void main(String []args) {
  new InputData();
  }
       }

Sekian Blog ini saya buat insyaallah bisa bermanfaat buat teman-teman sekalian..Terima Kasih telah berkunjung ke blog saya 

































Tidak ada komentar:

Posting Komentar