Kamis, 31 Oktober 2019

EVENT HANDLING LANJUTAN


Assalamu’alaikum warahmatullahi wabarakatuh
Selamat datang di blog saya...
Jadi pada kesempatan kali ini saya akan membahas tugas praktikum saya yang kelima yaitu lanjutan latihan Event Handling. Untuk yang belum lihat postingan sebelumnya dapat dilihat dari teks link di bawah ini :

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 Handling CheckBox.java
Program ini kita hanya mengganti dari latihan EventRadio.java. di postingan sebelumnya dengan  mengganti JradioButton dengan menggunakan JcheckBox.
Kode Program

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

class CheckBoxHandling extends JFrame implements ItemListener {
 private JTextField teks;
 private JPanel panel;
 private JCheckBox cbTn1, cbTn2, cbTn3;

 public CheckBoxHandling() {
    setTitle("Coba CheckBox Handling");
    teks = new JTextField("Jenis Kelamin : Pilihan");
    teks.setHorizontalAlignment(SwingConstants.CENTER);
    panel = new JPanel(new FlowLayout());
    cbTn1 = new JCheckBox("Pria");
    cbTn2 = new JCheckBox("Wanita");
    cbTn3 = new JCheckBox("Banci");

    ButtonGroup group = new ButtonGroup();
    group.add(cbTn1);
    group.add(cbTn2);
    group.add(cbTn3);
    cbTn1.addItemListener(this);
    cbTn2.addItemListener(this);
    cbTn3.addItemListener(this);

    setLayout(new BorderLayout());
    add(teks, "North");
    add(panel, "West");
    panel.add(cbTn1);
    panel.add(cbTn2);
    panel.add(cbTn3);
    pack();
    setVisible(true);
    setLocation(200,200);
    setDefaultCloseOperation(EXIT_ON_CLOSE);
}

public void itemStateChanged(ItemEvent event) {
    if(event.getSource()==cbTn1) {
      if(event.getStateChange()==ItemEvent.SELECTED)
        teks.setText("Jenis Kelamin : Pria");
}

    if (event.getSource()==cbTn2) {
         if(event.getStateChange () ==ItemEvent.SELECTED)
        teks.setText("Jenis Kelamin : Wanita");
    }
    if(event.getSource()==cbTn3) {
        if(event.getStateChange()==ItemEvent.SELECTED)
        teks.setText("Jenis Kelamin : Banci");

    }
 }
}
public class CheckBox {
 public static void main (String[] args) {
    new CheckBoxHandling();
 }
}
Simpan dengan nama CheckBox.java selanjutnya :

1.      CTRL+1 untuk mengkompile program java
2.      CTRL+2 untuk menjalankan program
Hasil Output Program
Pada program CheckBox.java kita menggunakan event handling dengan event source CheckBox dimana 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 CheckBox button yang kita klik maka status pilihan akan berubah. 
Program ini hampir sama dengan EventRadio.java perbedaannya hanya pada penampilan button pilihannya dimana pada radio button itu berbentuk bulat sedangkan untuk CheckBox itu berbentuk kotak dengan tanda ü pada kotak yang kita pilih.

B.            Membuat Program Login.java dengan memberikan Event Handling
Pada postingan latihan program manajemen layout lanjutan lalu kita membuat hanya form login tanpa adanya event/ pemberian aksi pada program login yang kita buat, jadi pada latihan ini kita akan menambahkan Even Handling pada form Login yang telah di buat pada postingan sebelumnya.

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

class GUI extends JFrame {
    JLabel lNama = new JLabel ("Username     : ");
    final JTextField fNama = new JTextField (10);
    JLabel lpassword = new JLabel ("Password     : ");
    final JTextField fpassword = new JPasswordField();
    JButton bTNSave = new JButton("OK");
    JButton bTNCancel = new JButton("Cancel");
    int count = 0;

public GUI() {
    setTitle("Login");
    setDefaultCloseOperation(3);
    setSize(350,200);
    ButtonGroup Group = new ButtonGroup();

    setLayout(null);
    add(lNama);
    add(fNama);
    add(lpassword);
    add(fpassword);
    add(bTNSave);
    add(bTNCancel);


    lNama.setBounds(10,10,120,20);
    fNama.setBounds(130,10,150,20);
    lpassword.setBounds(10,35,120,20);
    fpassword.setBounds(130,35,150,20);
    bTNSave.setBounds(50,70,100,20);
    bTNCancel.setBounds(160,70,100,20);
    setVisible(true);

    bTNSave.addActionListener(new ActionListener() {
                public void actionPerformed(ActionEvent e)
                {
                    String username = fNama.getText().toString();
                    String passwd = fpassword.getText().toString();
                    if(username.equals("vika") && passwd.equals("vika123"))
                    {
                        JOptionPane.showMessageDialog(null, "Anda berhasil login, \n\nSilahkan Klik OK untuk Melihat Data Anda");
                        view("Tampilan");
                    }
                    else
                    {
                        JOptionPane.showMessageDialog(null, "Username/Password Anda salah!!!");
                        //count++;
                    }
                    if(count == 3)
                    {
                        JOptionPane.showMessageDialog(null, "Anda sudah gagal Login sebanyak 3 kali. Harap coba lagi nanti . . .");
                        System.exit(1);
                    }
                }
            });
            bTNCancel.addActionListener(new ActionListener() {
                public void actionPerformed(ActionEvent ae)
                {
                    fNama.setText(null);
                    fpassword.setText(null);
                }
        });
}
public int view(String action)
        {
        String data = "DATA ANDA :\n\nNama           : Tri Novika \n\nProdi            : Sistem Informasi \n\nSemester    : 7\n\nSTIKOM Tunas Bangsa Pematangsiantar";
        int message = JOptionPane.showConfirmDialog(null, data,"DATA LOGIN",JOptionPane.CLOSED_OPTION,JOptionPane.QUESTION_MESSAGE);
        return message;
        }
}
class login {
    public static void main (String [] args){
        GUI G = new GUI();
}
}

Simpan dengan nama login.java selanjutnya :
1.      CTRL+1 untuk mengkompile program java
2.      CTRL+2 untuk menjalankan program
Hasil Output Program
Program login diatas kita telah memberikan event handling, dari program login ini kita harus menginputkan username (vika) dan password (vika123) yang sudah kita inputkan dikode program jika tidak maka akan muncul pesan username dan password salah dan jika kita salah sebanyak 3 kali maka program akan tertutup. Jika kita ingin mengganti password dan username kita bisa merubahnya pada baris kode program if(username.equals("vika") && passwd.equals("vika123")).  Ketika berhasil login maka akan muncul kotak dialog pesan seperti berikut ini  :


Perintah selanjutnya kita akan dapat melihat data ketika kita berhasil login. 

Untuk Data kita juga bisa merubahnya pada baris kode program :

public int view(String action)
        {
        String data = "DATA ANDA :\n\nNama           : Tri Novika \n\nProdi            : Sistem Informasi \n\nSemester    : 7\n\nSTIKOM Tunas Bangsa Pematangsiantar";
        int message = JOptionPane.showConfirmDialog(null, data,"DATA LOGIN",JOptionPane.CLOSED_OPTION,JOptionPane.QUESTION_MESSAGE);
        return message;
        }
}


Sekian Penjelasan Saya Tentang Materi Latihan Lanjutan Event Handling Java
Praktikum Berorientasi Objek II
Terimakasih dan Semoga Bermanfaat
----***----

Wassalammu’alaikum warahmatullahi wabarakatuh