15 Maret 2012

Class Adapter, Inner dan Anynomous

Menerapkan semua method dari  interface  yang semuanya  akan membutuhkan banyak 
pekerjaan.  Di  satu  sisi,  Anda  terkadang  lebih  sering  tertarik  menerapkan  hanya 
beberapa method  dari  interface  saja.  Untungnya,  Java menyediakan  untuk  kita  class- 
class  adapter  yang menerapkan  semua  method  dari masing-masing  listener  interface 
dengan  lebih  dari  satu  method.  Implementasi  dari  method-method  semuanya  adalah  kosong. 
contoh sintax Class Adapter

import java.awt.*;
import java.awt.event.*;

class CloseFrame extends Frame{
   Label label;
   CFListener w = new CFListener(this);
 
   CloseFrame(String title) {
      super(title);
      label = new Label("Close the frame.");
      this.addWindowListener(w);
   }


   void launchFrame() {
      setSize(300,300);
      setVisible(true);
   }
     
   public static void main(String args[]) {
      CloseFrame cf = new CloseFrame("Close Window Example");
      cf.launchFrame();
    }
}


class CFListener extends WindowAdapter{
    CloseFrame ref;
    CFListener( CloseFrame ref ){
  this.ref = ref;
  }
 
    public void windowClosing(WindowEvent e) {
         ref.dispose();
         System.exit(1);
   }
}





INNER CLASS



Inner  class,  seperti  namanya,  adalah  sebuah  class  yang dideklarasikan  di dalam  class 
lain. Kegunaan  inner  classes  akan dapat membantu  Anda menyederhanakan  program, 
terutama dalam event handling seperti yang ditunjukkan pada contoh. 



import java.awt.*; 
import java.awt.event.*; 

class CloseFrame extends Frame{ 
  Label label; 
   
  CloseFrame(String title) { 
    super(title); 
    label = new Label("Close the frame."); 
    this.addWindowListener(new CFListener()); 
  } 

  void launchFrame() { 
    setSize(300,300); 
    setVisible(true); 
  } 

  class CFListener extends WindowAdapter { 
    public void windowClosing(WindowEvent e) { 
      dispose(); 
      System.exit(1); 
    }     
  }       

  public static void main(String args[]) { 
    CloseFrame cf = new CloseFrame("Close Window  
                                                   Example"); 
    cf.launchFrame(); 
  } 






ANYNOMOUS  INNER CLASS



Anonymous inner class adalah inner class tanpa nama. Kegunaan dari anonymous inner 
class  akan  menyederhanakan  kode-kode  Anda  lebih  lanjut.  Di  bawah  ini  merupakan 
modifikasi dari contoh bagian sebelumnya. 



import java.awt.*; 
import java.awt.event.*; 

class CloseFrame extends Frame{ 
   Label label; 
    
   CloseFrame(String title) { 
      super(title); 
      label = new Label("Close the frame."); 
      this.addWindowListener(new WindowAdapter() { 
        public void windowClosing(WindowEvent e){ 
          dispose(); 
          System.exit(1); 
        } 
    }); 
   } 
    
   void launchFrame() { 
      setSize(300,300); 
      setVisible(true); 
   } 
       
   public static void main(String args[]) { 
      CloseFrame cf = new CloseFrame("Close Window Example"); 
      cf.launchFrame(); 
    } 

Tidak ada komentar:

Posting Komentar