Sebutkan 1 layout manager yang sudah -...

30
Sendy Ferdian Sujadi

Transcript of Sebutkan 1 layout manager yang sudah -...

Page 1: Sebutkan 1 layout manager yang sudah - si.itmaranatha.orgsi.itmaranatha.org/v2/attachments/article/341/04_Event_Handling_T.pdf · Sebutkan 1 layout manager yang sudah ... Tuliskanlah

Sendy Ferdian Sujadi

Page 2: Sebutkan 1 layout manager yang sudah - si.itmaranatha.orgsi.itmaranatha.org/v2/attachments/article/341/04_Event_Handling_T.pdf · Sebutkan 1 layout manager yang sudah ... Tuliskanlah

Sebutkan 1 layout manager yang sudah dipelajari, jelaskan!

2

Page 3: Sebutkan 1 layout manager yang sudah - si.itmaranatha.orgsi.itmaranatha.org/v2/attachments/article/341/04_Event_Handling_T.pdf · Sebutkan 1 layout manager yang sudah ... Tuliskanlah

Event Handling Event Listener Latihan

3

Page 4: Sebutkan 1 layout manager yang sudah - si.itmaranatha.orgsi.itmaranatha.org/v2/attachments/article/341/04_Event_Handling_T.pdf · Sebutkan 1 layout manager yang sudah ... Tuliskanlah

Event merupakan sebuah objek yang di-generate oleh user pada saat sesuatu terjadi terhadap suatu komponen.

Sebagai contoh, event di-generate pada saat user mengklik sebuah tombol, drag posisi mouse, atau memilih item dari combo box

Objek event ini di-kirimkan kepada sebuah method khusus yang kita buat yang disebut sebagai event listener.

Event listener ini akan memeriksa objek event, menentukan jenis event yang terjadi, dan langsung meresponnya.

event source event object event listener (interface) event handler (method)

Java memiliki banyak objek Event, yang merupakan bagian dari package java.awt.event dan javax.swing.event.

4

Page 5: Sebutkan 1 layout manager yang sudah - si.itmaranatha.orgsi.itmaranatha.org/v2/attachments/article/341/04_Event_Handling_T.pdf · Sebutkan 1 layout manager yang sudah ... Tuliskanlah

Button Clicked by User

Event generated by System

Appropriate action taken

5

Page 6: Sebutkan 1 layout manager yang sudah - si.itmaranatha.orgsi.itmaranatha.org/v2/attachments/article/341/04_Event_Handling_T.pdf · Sebutkan 1 layout manager yang sudah ... Tuliskanlah

Untuk menangani event, kita harus meregistrasi suatu listener kepada objek yang menjadi source event tersebut (misal: objek JButton)

Listener yang kita buat merupakan implementasi dari interface XXXListener. XXX ini artinya tergantung tipe event yang ingin dibuat. Interface XXXListener

ini didefinisikan di dalam package java.awt.event, java.beans, dan javax.swing.event.

Untuk meregristrasi objek kepada listener tersebut, kita dapat panggil method: addXXXListener()

Sebaliknya, untuk menghapus listener dari suatu objek, kita dapat memanggil method: removeXXXListener()

Kita dapat meregistrasi beberapa listener kepada sebuah komponen, demikian juga sebaliknya, suatu instance dari listener dapat diregistrasi untuk menerima event dari banyak komponen.

6

Page 7: Sebutkan 1 layout manager yang sudah - si.itmaranatha.orgsi.itmaranatha.org/v2/attachments/article/341/04_Event_Handling_T.pdf · Sebutkan 1 layout manager yang sudah ... Tuliskanlah

7

Page 8: Sebutkan 1 layout manager yang sudah - si.itmaranatha.orgsi.itmaranatha.org/v2/attachments/article/341/04_Event_Handling_T.pdf · Sebutkan 1 layout manager yang sudah ... Tuliskanlah

8

Page 9: Sebutkan 1 layout manager yang sudah - si.itmaranatha.orgsi.itmaranatha.org/v2/attachments/article/341/04_Event_Handling_T.pdf · Sebutkan 1 layout manager yang sudah ... Tuliskanlah

9

Page 10: Sebutkan 1 layout manager yang sudah - si.itmaranatha.orgsi.itmaranatha.org/v2/attachments/article/341/04_Event_Handling_T.pdf · Sebutkan 1 layout manager yang sudah ... Tuliskanlah

10

Page 11: Sebutkan 1 layout manager yang sudah - si.itmaranatha.orgsi.itmaranatha.org/v2/attachments/article/341/04_Event_Handling_T.pdf · Sebutkan 1 layout manager yang sudah ... Tuliskanlah

1. Menjadikan JFrame utama untuk meng-implements Listener interface

2. Menggunakan Inner-Class 3. Menggunakan Anonymous Inner-Class

11

Page 12: Sebutkan 1 layout manager yang sudah - si.itmaranatha.orgsi.itmaranatha.org/v2/attachments/article/341/04_Event_Handling_T.pdf · Sebutkan 1 layout manager yang sudah ... Tuliskanlah

Buat komponen yang akan men-generate event

Buatlah sebuah class yang meng-implement listener interface untuk event yang akan di tangani:

Tuliskanlah kode untuk semua methods yang didefinisikan oleh listener tersebut

Register listener dengan source-nya ke komponen

12

Page 13: Sebutkan 1 layout manager yang sudah - si.itmaranatha.orgsi.itmaranatha.org/v2/attachments/article/341/04_Event_Handling_T.pdf · Sebutkan 1 layout manager yang sudah ... Tuliskanlah

13

Page 14: Sebutkan 1 layout manager yang sudah - si.itmaranatha.orgsi.itmaranatha.org/v2/attachments/article/341/04_Event_Handling_T.pdf · Sebutkan 1 layout manager yang sudah ... Tuliskanlah

Inner class adalah suatu kelas yang bersarang di dalam kelas yang lain.

Inner class juga dapat dimanfaatkan untuk membuat suatu kelas yang meng-implement event listeners.

Dengan cara ini, class utama (yang mendefinisikan JFrame) tidak perlu meng-implement event listener.

14

Page 15: Sebutkan 1 layout manager yang sudah - si.itmaranatha.orgsi.itmaranatha.org/v2/attachments/article/341/04_Event_Handling_T.pdf · Sebutkan 1 layout manager yang sudah ... Tuliskanlah

15

Page 16: Sebutkan 1 layout manager yang sudah - si.itmaranatha.orgsi.itmaranatha.org/v2/attachments/article/341/04_Event_Handling_T.pdf · Sebutkan 1 layout manager yang sudah ... Tuliskanlah

Berdasarkan contoh yang ada, cobalah buat sebuah button yang akan menutup aplikasi.

Untuk menutup aplikasi , Anda dapat menggunakan code berikut :

System.exit(0);

16

Page 17: Sebutkan 1 layout manager yang sudah - si.itmaranatha.orgsi.itmaranatha.org/v2/attachments/article/341/04_Event_Handling_T.pdf · Sebutkan 1 layout manager yang sudah ... Tuliskanlah

JTextField [JTextFieldName].getText();

17

Sendy Ferdian

Welcome, Sendy Ferdian

Page 18: Sebutkan 1 layout manager yang sudah - si.itmaranatha.orgsi.itmaranatha.org/v2/attachments/article/341/04_Event_Handling_T.pdf · Sebutkan 1 layout manager yang sudah ... Tuliskanlah

Pada dasarnya, semua input yang diketik di dalam JTextField adalah teks biasa bertipe String

Untuk itu, kita perlu menggunakan method konversi apabila ingin mendapatkan nilai berupa angka.

Kita dapat menggunakan berbagai “parse methods” kepunyaan wrapper classes untuk mendapatkan nilai angka tipe primitif-nya.

int count = Integer.parseInt(textField1.getText());

18

Page 19: Sebutkan 1 layout manager yang sudah - si.itmaranatha.orgsi.itmaranatha.org/v2/attachments/article/341/04_Event_Handling_T.pdf · Sebutkan 1 layout manager yang sudah ... Tuliskanlah

int count = Integer.parseInt(textField1.getText());

short count = Short.parseShort(textField1.getText());

long count = Long.parseLong(textField1.getText());

byte count = Byte.parseByte(textField1.getText());

float count = Float.parseFloat(textField1.getText());

double count = Double.parseDouble(textField1.getText());

Sebaliknya, untuk konversi angka menjadi String, kita dapat menggunakan method valueOf yang dimiliki oleh class String tersebut.

19

int angka = 5;

String nilai = String.valueOf(angka);

Page 20: Sebutkan 1 layout manager yang sudah - si.itmaranatha.orgsi.itmaranatha.org/v2/attachments/article/341/04_Event_Handling_T.pdf · Sebutkan 1 layout manager yang sudah ... Tuliskanlah

Sebuah toko buku menerima pengiriman dus berisi buku-buku dari penerbit. Setiap pengiriman memiliki sejumlah buku teks dalam jumlah yang sama untuk setiap dus-nya.

Manager toko ingin menggunakan komputer untuk menghitung total jumlah buku yang tiba dari setiap pengiriman.

Caranya adalah dengan memasukkan jumlah dus dan jumlah buku dalam setiap dus

Program akan menghitung dan menampilkan jumlah buku di setiap pengiriman.

20

Page 21: Sebutkan 1 layout manager yang sudah - si.itmaranatha.orgsi.itmaranatha.org/v2/attachments/article/341/04_Event_Handling_T.pdf · Sebutkan 1 layout manager yang sudah ... Tuliskanlah

21

Page 22: Sebutkan 1 layout manager yang sudah - si.itmaranatha.orgsi.itmaranatha.org/v2/attachments/article/341/04_Event_Handling_T.pdf · Sebutkan 1 layout manager yang sudah ... Tuliskanlah

JRadioButton & JCheckBox isSelected();

22

Page 23: Sebutkan 1 layout manager yang sudah - si.itmaranatha.orgsi.itmaranatha.org/v2/attachments/article/341/04_Event_Handling_T.pdf · Sebutkan 1 layout manager yang sudah ... Tuliskanlah

23

Page 24: Sebutkan 1 layout manager yang sudah - si.itmaranatha.orgsi.itmaranatha.org/v2/attachments/article/341/04_Event_Handling_T.pdf · Sebutkan 1 layout manager yang sudah ... Tuliskanlah

JScrollBar menggunakan AdjustmentListener yang memiliki method adjustmentValueChanged

JSlider menggunakan ChangeListener yang memiliki method stateChanged

24

Page 25: Sebutkan 1 layout manager yang sudah - si.itmaranatha.orgsi.itmaranatha.org/v2/attachments/article/341/04_Event_Handling_T.pdf · Sebutkan 1 layout manager yang sudah ... Tuliskanlah

25

Page 26: Sebutkan 1 layout manager yang sudah - si.itmaranatha.orgsi.itmaranatha.org/v2/attachments/article/341/04_Event_Handling_T.pdf · Sebutkan 1 layout manager yang sudah ... Tuliskanlah

Anda dapat membuat sebuah inner class tanpa menentukan namanya. Ini disebut sebagai anonymous inner class.

Setiap kali kita membuat komponen (misalnya JButton), kita langsung buatkan sebuah anonymous inner class yang khusus akan menangani event untuk JButton itu sendiri.

Hal ini berbeda dengan teknik sebelumnya, di mana sebuah class dapat menangani banyak event dari komponen, yang mana untuk membedakan event-source-nya kita gunakan e.getSource()

Dengan demikian, penggunaan anonymous inner class dapat mempermudah pembacaan kode kita, karena class didefinisikan secara langsung di-tempat ia akan diakses (di-referenced)

Namun, kekurangannya adalah adanya kemungkinan penurunan performance karena banyaknya jumlah class yang dibuat. (satu class untuk satu komponen!)

26

Page 27: Sebutkan 1 layout manager yang sudah - si.itmaranatha.orgsi.itmaranatha.org/v2/attachments/article/341/04_Event_Handling_T.pdf · Sebutkan 1 layout manager yang sudah ... Tuliskanlah

27

Page 28: Sebutkan 1 layout manager yang sudah - si.itmaranatha.orgsi.itmaranatha.org/v2/attachments/article/341/04_Event_Handling_T.pdf · Sebutkan 1 layout manager yang sudah ... Tuliskanlah

Buatlah sebuah program sederhana yang menerima input dari sebuah text field

Pada saat user menekan tombol OK maka input tersebut akan disalin ke dalam sebuah text area.

28

Page 29: Sebutkan 1 layout manager yang sudah - si.itmaranatha.orgsi.itmaranatha.org/v2/attachments/article/341/04_Event_Handling_T.pdf · Sebutkan 1 layout manager yang sudah ... Tuliskanlah

29

Page 30: Sebutkan 1 layout manager yang sudah - si.itmaranatha.orgsi.itmaranatha.org/v2/attachments/article/341/04_Event_Handling_T.pdf · Sebutkan 1 layout manager yang sudah ... Tuliskanlah

That’s all for today!

30