Rabu, 07 Maret 2012

Contoh Aplikasi Event Handling

Langkah-langkah:
  1. Buatlah sebuah class yang menguraikan dan menampilkan tampilan dari aplikasi GUI
    Anda.
  2. Buatlah sebuah class yang menerapkan interface listener yang sesuai. Class ini boleh
    mengacu pada class yang sama seperti pada langkah awal.
  3. Dalam menerapkan class, gunakan semua methods dengan interface listener yang
    sesuai. Uraikan masing-masing method bagaimana Anda ingin mengendalikan event-
    event. Anda dapat memberikan implementasi kosong untuk method yang tidak ingin
    Anda gunakan.
  4. Daftarkan objek listener, instansiasi dari class listener pada langkah 2, dengan source
    component menggunakan method add<Type>Listener.

Source code:
import java.awt.*;
import java.awt.event.*;
public class MouseEventsDemo extends Frame implements 
                       MouseListener, MouseMotionListener {
   TextField tf;
   public MouseEventsDemo(String title){
      super(title);
      tf = new TextField(60);
      addMouseListener(this);
   }
   public void launchFrame() {
      /* Menambah komponen ke frame */
      add(tf, BorderLayout.SOUTH);
      setSize(300,300);
      setVisible(true);
   }
   public void mouseClicked(MouseEvent me) {
      String msg = "Mouse clicked.";
      tf.setText(msg);
   }
   public void mouseEntered(MouseEvent me) {
      String msg = "Mouse entered component.";
      tf.setText(msg);
   }
   public void mouseExited(MouseEvent me) {
      String msg = "Mouse exited component.";
      tf.setText(msg);
   }
   public void mousePressed(MouseEvent me) {
      String msg = "Mouse pressed.";
      tf.setText(msg);
   }
   public void mouseReleased(MouseEvent me) {
      String msg = "Mouse released.";
      tf.setText(msg);
   }
   public void mouseDragged(MouseEvent me) {
      String msg = "Mouse dragged at " + me.getX() + "," +
                                                me.getY();
      tf.setText(msg);
   }
   public void mouseMoved(MouseEvent me) {
      String msg = "Mouse moved at " + me.getX() + "," +
                                                me.getY();
      tf.setText(msg);
   }
   public static void main(String args[]) {
      MouseEventsDemo med = new MouseEventsDemo("Mouse Events
                                                   Demo");
      med.launchFrame();
    }
}

GUI Pada Java

GUI (Graphical User Interface), memungkinkan user untuk berinteraksi dengan komputer
secara lebih baik. Pengguna berinteraksi dengan berbagai elemen grafis,diantaranya: button, dialog box, menu, dsb. Sejak 1994 Sun Microsystem berupaya untuk membuat JAVA memiliki perangkat bergaya
desktop dengan ToolkitJAVA yang dikenal sebagai AWT (Abstract Windowing Toolkit). Tahun 1997, muncul JFC (Java Foundation Class) untuk kepentingan pembuatan aplikasi Window yang merupakan pengembangan dari AWT. JFC mempunyai kode swing yang terdapat pada package yang disediakan pada JAVA SDK versi 1.2 ke atas (JAVA 2). JAVA menyediakan dua graphical library:
  • AWT (Abstract Windows Toolkit)
  • Swing
Contoh:
  •  import java.awt.* ; 
  • Import java.awt.event.* ;
  • Import javax.swing.* ;  

Graphical Object:
  1. Container (tempat), obyek yang dapat menampung komponen grafis dan tempat yang lebih
    kecil. Contoh: frames, panels.
  2. Component, obyek grafis yang berfungsi untuk menampilkan data, menerima masukan, atau
    menunjukkan suatu kondisi. Contoh: buttons, labels, text fields.
  3. Event, obyek yang merepresentasikan suatu kejadian. Contoh: gerakan mouse, penekanan tombol.
  4. Listener, suatu obyek yang menunggu suatu kejadian khusus dan akan bereaksi (melakukan
    sesuatu) jika kejadian tersebut terjadi.

Enkripsi dan Deskripsi Java

Contoh Enkripsi dan Deskripsi :
mport javax.swing.*;
import java.awt.*;
import java.io.*;
import java.awt.event.*;
public class Enkripsi extends JFrame{
static String teks=”";
private JLabel LabelPesan=new JLabel(“Pesan:”);
private static JTextField TeksImputan=new JTextField(40);
private JLabel LabelPergeseran=new JLabel(“Pergeseran”);
private static JTextField TeksPergeseran=new JTextField(“2″);
private JLabel LabelEnkripsi=new JLabel(“Hasil Enkripsi:”);
private static JTextField TeksHasilEnkripsi=new JTextField(40);
private JButton TombolEnkripsi=new JButton(“Enkripsi”);
private JButton TombolReset=new JButton(“Reset”);
private JPanel PanelPesan_Label=new JPanel();
private JPanel PanelTombol=new JPanel();
public Enkripsi(){ //mengatur GUI
PanelTombol.setLayout(new GridLayout(6,1,30,10));
PanelTombol.add(LabelPesan);
TeksImputan.setToolTipText(“Isi pesan yang akan dienkripsi di sini”);
PanelTombol.add(TeksImputan);
PanelTombol.add(LabelPergeseran);
TeksPergeseran.setToolTipText(“Masukkan pergeseran di sini”);
PanelTombol.add(TeksPergeseran);
PanelTombol.add(LabelEnkripsi);
TeksHasilEnkripsi.setToolTipText(“Anda tidak perlu mengisi bagian ini. Bagian ini akan terisi setelah Anda melakukan enkripsi.”);
PanelTombol.add(TeksHasilEnkripsi);
setLayout(new FlowLayout(FlowLayout.LEFT,10,10));
add(PanelTombol);
TombolEnkripsi.setToolTipText(“Klik untuk melakukan enkripsi pesan”);
PanelPesan_Label.add(TombolEnkripsi);
TombolReset.setToolTipText(“Klik untuk menghapus semua pesan”);
PanelPesan_Label.add(TombolReset);
setLayout(new FlowLayout(FlowLayout.CENTER));
add(PanelPesan_Label,BorderLayout.SOUTH);
TombolEnkripsi.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e){
try
{
int pergeseran=Integer.valueOf(TeksPergeseran.getText());
if(pergeseran>0 && pergeseran0){
for(int i=0;i=48 && kode_ASCII=65 && kode_ASCII=97 && kode_ASCII=33 && kode_ASCII=58 && kode_ASCII=91 && kode_ASCII=123 && kode_ASCII<=126)
ArrayHuruf[i]=(char)((kode_ASCII-123+pergeseran)%4+123);
}
}
teks=String.valueOf(ArrayHuruf);
}
else{
JOptionPane.showMessageDialog(null,”Error!!\nMasukkan pesan yang akan dienkripsi dulu”,”ERROR”,JOptionPane.ERROR_MESSAGE);
}
return teks;
}
}

Konsep Dasar Stream IO

Tipe-tipe Stream yang Umum Digunakan:

>>Stream Karakter dan Byte
     Stream byte adalah abstraksi file atau alat untuk data biner sedangkan stream karakter adalah untuk karakter Unicode. Class InputStream adalah abstraksi class root untuk semua input stream byte sedangkan class OutputStream adalah class root abstraksi dari semua output stream byte. Untuk stream karakter, superclasss yang sesuai dari semua class-class secara berturut-turut adalah class Reader dan the Writer. Kedua class-class ini adalah abstraksi class-class untuk membaca dan menulis stream karakter.

>> Input dan Output Stream
    Stream juga dikategorikan berdasarkan apakah mereka digunakan untuk membaca atau menulis stream.Walaupun ini sudah cukup nyata, izinkan saya untuk mendefinisikan tipe stream ini. Anda diijinan untuk membaca dari input stream tapi tidak menulisnya. Di lain pihak, Anda diijinkan untuk menulis output streams tapi tidak membacanya. Class InputStream  dan class Reader  adalah superclass-superclass dari semua input stream. Class OutputStream dan class Writer adalah class-class root dari semua  output stream. Input   stream  juga  dikenal   sebagai   stream  sumber  (source  stream)  sejak  kita memperoleh informasi dari stream ini. sementara itu output stream disebut juga stream hasil(sink stream).

>> Node Stream Filter
Kini package java.io membedakan antara node dan stream filter. Sebuah stream node adalah sebuah stream dengan fungsi dasar berupa fungsi membaca atau menulis dari sebuah lokasi khusus seperti pada disk atau dari jaringan. Tipe-tipe dari stream node terdiri atas file, memory dan jalur data. Stream filter, di lain pihak, diletakkan pada layer stream node diantara threads atau proses untuk menyediakan fungsi tambahan yang tidak dapat ditemukan dalam stream node oleh stream node itu sendiri. Penambahan lapisan pada sebuah stream node disebut dengan stream chaining. Sesi ini berturut-turut mempunyai sebuah tujuan dariclass-class stream yang berbeda. Untuk melengkapi daftar dari class-class ini, silahkan melihat dokumentasi Java's API.