Kamis, 24 Oktober 2019

Event Handling


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