OOP minggu ini saya belajar bagaimana cara agar JButton yang sudah kita buat bisa melakukan sesuatu. Ada 3 cara yang harus diperhatikan:
1. Implement class kita dengan ActionListener
2. Over ride method actionPerformed
3. Register button yang diinginkan
Dengan melakukan ke tiga cara diatas, maka button yang diregisterkan akan melakuan sesuatu sesuai dengan isi method ActionPerformed.
Langkah - langkah :
1. implement class pada ActionListener
public class Temporary implements ActionListener
2. Over ride method actionPerformed
public void actionPerformed(ActionEvent e) {
Object source = e.getSource();
if(source == button){
button.setText("I have been Clicked!");
}
else if (source == button2){
button2.setText("You have tried me");
}
}
Object source berfungsi untuk mengetahui sumber dari event yang terjadi.
3. Register button yang diinginkan
button.addActionListener(this);
button2.addActionListener(this);
Selain menggunakan Object source untuk mengetahui sumber event, bisa juga menggunakan inner class. Inner class adalah class yang berada dalam class atau nested class. Inner class memiliki semua instance dan method dari outter class nya. Inner class jg memiliki akses penuh pada instance yang di declare private.
Membuat inner class cukup mudah.
public class MyOutterClass{
private int x;
class MyInnerClass{
x = 5;
}
}
Pada contoh diata MyInnerClass memiliki hak akses pada int x meskipun x di declare private.
public class Temporary{
class Button1 implements ActionListener {
public void actionPerformed(ActionEvent e) {
button2.setText("You have tried me");
}
}
class Button implements ActionListener{
public void actionPerformed(ActionEvent e) {
button.setText("I have been clicked");
}
}
}
Diatas adalah bagaimana mengimplement ActionListener jika menggunakan inner class. yang perlu diperhatikan adalah saat inner class sudah mengimplement ActionListener maka outter class tidak perlu lagi mengimplement ActionListener.
button.addActionListener(new Button());
button2.addActionListener(new Button1());
Diatas adalah cara meregister button pada ActionListener. Jika tidak menggunakan inner class kita pass keyword this pada argument, jika menggukankan inner class yang kita pass pada argument adalah object dari inner class.
Thursday, 29 April 2010
Subscribe to:
Post Comments (Atom)
No comments:
Post a Comment