Ads 468x60px

Rabu, 07 Maret 2012

GUI AWT Pada Java

 AWT (Abstract Window Toolkit) – SUN Microsystem -> Oracle Product


AWT (Abstract Window Toolkit) ini adalah GUI Toolkit pertama pada bahasa pemrograman Java, sayang-nya AWT ini sangat-sangat kekurangan komponen yang biasa digunakan untuk membangun sebuah aplikasi desktop secara lengkap (komponen tabel saja tidak ada  ) Terlepas dari kurang-nya komponen GUI yang terdapat pada AWT (Abstract Window Toolkit), aplikasi yang dibangun menggunakan AWT (Abstract Window Toolkit) akan tampak seperti aplikasi native. Maksudnya yaitu, jika aplikasi yang dibangun menggunakan AWT (Abstract Window Toolkit) ini dijalankan pada Sistem Operasi Windows. Maka aplikasi ini akan terlihat seperti aplikasi Windows pada umum-nya, dan begitu juga jika dijalankan pada Sistem Operasi Mac ataupun GNU/Linux. Kenapa ini bisa terjadi, karena AWT (Abstract Window Toolkit) ini benar-benar memanggil native subrutin untuk menggambar setiap komponen-nya ke layar. Tidak percaya ? Mari kita lihat tampilan ke 2 screenshot dibawah ini :
AWTWindows
Tampilan Aplikasi Berbasis AWT Di Ms Windows

AWTExample
Tampilan Aplikasi Berbasis AWT Di GNU/Linux

Sedangkan source-code yang digunakan pada tampilan form diatas adalah seperti dibawah ini :

·          
public class AwtFrame extends java.awt.Frame {
    private java.awt.CheckboxGroup checkBoxGroup;

    public AwtFrame() {
        checkBoxGroup = new java.awt.CheckboxGroup();

        initComponents();
    }

    private void initComponents() {
        panel1 = new java.awt.Panel();
        label1 = new java.awt.Label();
        txtKdBarang = new java.awt.TextField();
        label2 = new java.awt.Label();
        txtNmBarang = new java.awt.TextField();
        label3 = new java.awt.Label();
        checkBoxEceran = new java.awt.Checkbox();
        checkBoxPack = new java.awt.Checkbox();
        txtArea = new java.awt.TextArea();
        button1 = new java.awt.Button();
        button2 = new java.awt.Button();
        menuBar1 = new java.awt.MenuBar();
        menu1 = new java.awt.Menu();
        menuItem1 = new java.awt.MenuItem();
        menu2 = new java.awt.Menu();

        setMinimumSize(new java.awt.Dimension(500, 300));
        setTitle("AWT Form Example");
        addWindowListener(new java.awt.event.WindowAdapter() {
            public void windowClosing(java.awt.event.WindowEvent evt) {
                exitForm(evt);
            }
        });

        label1.setText("Kode Barang");
        label2.setText("Nama Barang");
        label3.setText("Kategori");

        checkBoxEceran.setCheckboxGroup(checkBoxGroup);
        checkBoxEceran.setLabel("Eceran");
        checkBoxEceran.setState(true);

        checkBoxPack.setCheckboxGroup(checkBoxGroup);
        checkBoxPack.setLabel("Pack");

        button1.setLabel("Tambah");
        button1.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                button1ActionPerformed(evt);
            }
        });

        button2.setLabel("Clear");
        button2.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                button2ActionPerformed(evt);
            }
        });

        add(panel1, java.awt.BorderLayout.CENTER);
        menu1.setLabel("File");
        menuItem1.setLabel("Exit");
        menuItem1.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                menuItem1ActionPerformed(evt);
            }
        });
        menu1.add(menuItem1);
        menuBar1.add(menu1);
        menu2.setLabel("Edit");
        menuBar1.add(menu2);
        setMenuBar(menuBar1);
        pack();
    }//

    /** Exit the Application */
    private void exitForm(java.awt.event.WindowEvent evt) {                         
        System.exit(0);
    }                        

    private void menuItem1ActionPerformed(java.awt.event.ActionEvent evt) {
        exitForm(new java.awt.event.WindowEvent(this, WIDTH));
    }

    private void<$2Fb> clearField() {
        txtKdBarang.setText("");
        txtNmBarang.setText("");
    }

    private void button1ActionPerformed(java.awt.event.ActionEvent evt) {
        txtArea.append("\nKode Barang     = " + txtKdBarang.getText());
        txtArea.append("\nNama Barang    = " + txtNmBarang.getText());
        txtArea.append("\nKategori Barang = " + checkBoxGroup.getSelectedCheckbox().getLabel());
        clearField();
        txtKdBarang.requestFocusInWindow();
    }

    private void button2ActionPerformed(java.awt.event.ActionEvent evt) {
        clearField();
        txtArea.setText("");
    }

    // Variables declaration - do not modify
    private java.awt.Button button1;
    private java.awt.Button button2;
    private java.awt.Checkbox checkBoxEceran;
    private java.awt.Checkbox checkBoxPack;
    private java.awt.Label label1;
    private java.awt.Label label2;
    private java.awt.Label label3;
    private java.awt.Menu menu1;
    private java.awt.Menu menu2;
    private java.awt.MenuBar menuBar1;
    private java.awt.MenuItem menuItem1;
    private java.awt.Panel panel1;
    private java.awt.TextArea txtArea;
    private java.awt.TextField txtKdBarang;
    private java.awt.TextField txtNmBarang;
}

sumber: http://martinusadyh.web.id
Reade more >>

Berbagai Jenis InputStream dan OutputStream

InputStream

·         Beberapa kelas turunan dari InputStream dapat dirangkum dalam tabel di bawah ini :
Kelas 
Kegunaan 
Argumen yang dibutuhkan untuk membuat objek
ByteArrayInputStream
Menggunakan buffer pada memori sebagai aliran input
Buffer yang akan digunakan sebagai aliran input
StringBufferInputStream
Mengubah string menjadi InputStream
Suatu String (di dalamnya sebenarnya menggunakan StringBuffer)
FileInputStream
Untuk membaca informasi dari dalam file
String yang berupa nama suatu file, atau objek bertipe File atau FileDescriptor
PipedInputStream
Menghasilkan data yang ditulis oleh PipedOutputStream. Mengimplementasi konsep "piping". Bisa digunakan untuk multi-threading
Objek PipedOutputStream
SequenceInputStream
Menggabungkan dua atau lebih InputStream menjadi satu InputStream
Dua atau lebih objek bertipe InputStream atau kontainer bertipe Enumeration yang berisi InputStream yang akan digabungkan
FilterInputStream
Kelas abstrak yang merupakan interface dari beberapa kelas bantu untuk menggunakan InputStream lain




·         FilterInputStream adalah lapisan di atas InputStream yang berguna untuk memberi landasan pada kelas-kelas dekorator di atas. Kenapa dekorator? Karena kelas-kelas ini hanya memberikan fungsionalitas tambahan, akan tetapi tidak mengubah bagaimana I/O itu sendiri bekerja. Seperti disebutkan sebelumnya, bahwa kelas dasar InputStream dan OutputStream hanya memiliki metode-metode paling sederhana. Kelas-kelas ini memperbanyak metode baca/tulis untuk kemudahan pemrograman.
·         Kelas FilterInputStream sendiri terdiri dari beberapa jenis, yang bisa dirangkum dalam tabel berikut ini :
·          
Kelas
Kegunaan
Argumen yang dibutuhkan untuk membuat objek
DataInputStream
Digunakan bersama-sama dengan DataOutputStream sehingga kita bisa menulis tipe data primitif, kemudian membacanya kembali tanpa harus diformat sendiri
InputStream
BufferedInputStream
Digunakan untuk menghindari pembacaan langsung dari media secara fisik setiap kali perintah read() diberikan. Atau dengan kata lain "gunakan buffer" untuk baca tulis
InputStream dengan kemungkinan menentukan besar buffer sendiri
LineNumberInputStream
Mencatat nomor baris dalam InputStream. Kita bisa menggunakan perintah getLineNumber() dan setLineNumber(int)
InputStream
PushBackInputStream
Memiliki satu byte buffer sehingga kita bisa meletakkan kembali karakter yang sudah diambil (dibaca)
InputStream
OutputStream
·         Beberapa kelas turunan dari OutputStream dapat dirangkum dalam tabel di bawah ini :
Kelas 
Kegunaan 
Argumen yang dibutuhkan untuk membuat objek
ByteArrayOutputStream
Membuat buffer dalam memori. Semua data yang kita kirim akan disimpan di memori ini.
Opsional untuk memberikan besar buffer yang akan disiapkan
FileOutputStream
Untuk menulis informasi ke dalam file
String yang berupa nama suatu file, atau objek bertipe File atau FileDescriptor
PipedOutputStream
Informasi yang kita kirim di aliran output ini akan berakhir pada objek bertipe PipedInputStream. Mengimplementasi konsep "piping". Bisa digunakan untuk multi-threading
Objek PipedInputStream
FilterOutputStream
Kelas abstrak yang merupakan interface dari beberapa kelas bantu untuk menggunakan OutputStream lain.


\\
·         Kelas FilterOutputStream sendiri terdiri dari beberapa jenis, yang bisa dirangkum dalam tabel berikut ini :
Kelas
Kegunaan
Argumen yang dibutuhkan untuk membuat objek
DataOutputStream
Digunakan bersama-sama dengan DataInputStream sehingga kita bisa menulis tipe data primitif, kemudian membacanya kembali tanpa harus diformat sendiri
OutputStream
PrintStream
Untuk mengeluarkan output yang sudah diformat. DataOutputStream hanya menangani bagaimana data disimpan sehingga bisa diambil kembali. PrintStream lebih berkonsentrasi pada "tampilan", sehingga data yang ditulis bisa dibaca dengan baik.
OutputStream dengan tambahan opsi boolean untuk memerintahkan buffer akan dikosongkan (flush) setiap kali baris baru ditulis.
BufferedOutputStream
Digunakan untuk menghindari penulisan langsung dari media secara fisik setiap kali perintah write() diberikan. Atau dengan kata lain "gunakan buffer" untuk baca tulis. Kita bisa menggunakan perintah flush() untuk mengosongkan buffer dan mengirimkan hasilnya ke media fisik.
OutputStream dengan kemungkinan menentukan besar buffer sendiri
post: http://dediknurdiantoro.blogspot.com/
Reade more >>

GUI Pada Java

Pengantar
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
Container (tempat), obyek yang dapat menampung komponen grafis dan tempat yang lebih
kecil
Contoh: frames, panels
Component, obyek grafis yang berfungsi untuk menampilkan data, menerima masukan, atau
menunjukkan suatu kondisi.
Contoh: buttons, labels, text fields
Event, obyek yang merepresentasikan suatu kejadian.
Contoh: gerakan mouse, penekanan tombol
Listener, suatu obyek yang menunggu suatu kejadian khusus dan akan bereaksi (melakukan
sesuatu) jika kejadian tersebut terjadi
Graphical Object
Pemrog. Berorientasi Objek **, Pertemuan Ke-11
Noviyanto, ST Halaman 2
Container : Frame
import javax.swing.*;
class FramePertamaku extends JFrame {
public FramePertamaku() {
setTitle( "Frame Pertama );
setSize( 300 , 200 );
}
}
public class Frameku {
public static void main (String args[ ] ) {
FramePertamaku coba = new FramePertamaku();
coba.show();
}
}
Beberapa method java.awt.Frame
void setResizable (boolean b)
menentukan apakah user dapat merubah ukuran frame
void setTitle(String s)
mengatur teks pada title bar
void setIconImage(Image image)
gambar yang digunakan sebagai icon dari frame
Component : Text
import java.awt.*;
public class WindowText extends Frame {
public void paint(Graphics g) {
setSize(300, 200);
setTitle(getClass().getName());
Font f = new Font( "Monospaced , Font.BOLD, 16);
g.setFont(f);
g.drawString( "Hello ... , 10 , 100);
g.drawString( "Salam kenal dari Frame ... , 30 ,120);
}
public static void main(String[ ] args) {
WindowText coba = new WindowText();
coba.setSize(500, 300);
coba.setLocation(200, 100);
coba.setTitle("Window Text );
coba.show();
}
}
Beberapa method java.awt.Font :
Font (String name, int style, int size)
mengatur jenis font, format font (PLAIN,BOLD,ITALIC) dan ukuran font.
String getFontName() mengetahui nama font face
String getFamily() mengetahui jenis keluarga font
Component : Label
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
public class KomponenLabel {
public static void main(String[ ] args) {
JFrame frame = new JFrame("Membuat Label");
JLabel label = new JLabel("Pemrograman Berorientasi Obyek");
frame.getContentPane().add(label);
frame.pack();
frame.setVisible(true);
frame.setDefaultCloseOperation (JFrame.EXIT_ON_CLOSE);
}
}
Pemrog. Berorientasi Objek **, Pertemuan Ke-11
Noviyanto, ST Halaman 3
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
public class KomponenLabelBerformat {
public static void main(String[] args) {
JFrame frame = new JFrame("Membuat Label");
JLabel label = new JLabel("Pemrograman Berorientasi Obyek");
label.setForeground(Color.yellow);
label.setBackground(Color.blue);
label.setOpaque(true);
label.setFont(new Font("SansSerif", Font.BOLD, 14));
frame.getContentPane().add(label);
frame.pack();
frame.setVisible(true);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
}
Component : TextField
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
public class TeksField {
public static void main(String[ ] args) {
JFrame frame = new JFrame("Membuat TeksField");
JLabel label = new JLabel("Nama :");
JTextField textField = new JTextField(20);
frame.getContentPane().setLayout(new FlowLayout());
frame.getContentPane().add(label);
frame.getContentPane().add(textField);
frame.pack();
frame.setVisible(true);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
}
Component
Beberapa obyek ContentPanel, yaitu :
JPasswordField, JTextArea, JButton, JRadioButton,
JCheckBox, JComboBox.
Event - Listener.
Jika sebuah CLASS ingin bereaksi atas aksi yang dilakukan oleh pemakai(user) melalui
keyboard, mouse atau lainnya, maka Java menjawab dengan sistem yang disebut sebagai Event
Handling.
Program atau Interface ini disebut sebagai EventListener
ActionListener
Bereaksi atas perubahan komponen , seperti klik mouse atau tombol.
AdjustmentListener
Bereaksi atas perubahaan komponen untuk penyesuaian, misalnnya scrollbar yang digerakkan.
FocusListener
Event yang disebabkan oleh focus pada field, misalnya kursor berada pada field tersebut.
ItemListener
Bereaksi pada perubahan checkbox, radiobutton dan lainnya.
KeyListener
Bereaksi atas keyboard, misalnya penekanan tombol ALT Ctrl dan lainnya.
Pemrog. Berorientasi Objek **, Pertemuan Ke-11
Noviyanto, ST Halaman 4
WindowsListener
Bereaksi atas perubahaan pada window, misalnya diperbesar, diperkecil, digeser atau ditutup.
MouseMotionListener
Bereaksi atas pergerakan mouse, misalnya bila melewati area komponen tertentu.
Listeners terdaftar pada java.awt.event.*
Setelah komponen dideklarasikan, maka listener dapat ditambahkan pada komponen tersebut,
misalnya pada Button:
Jbutton b1=new Jbutton("Tombol"); b1.addActionListener( )
Listener harus ditembahkan lebih dahulu ke dalam komponen, sebelum komponen tersebut
diletakkan pada Frame/ Content Pane.
post: http://dediknurdiantoro.blogspot.com/


Sumber:
http://www.freewebs.com/tekomitn/Materi/PBO/Basic%20GUI.ppt
Hermawan, Beni. Menguasai Java 2 & Object oriented Programming,Penerbit Andi
Yogyakarta, 2004.
www2.ukdw.ac.id/kuliah/info/IN1253/DasarPerancanganGUI.pdf
roemly.blogspot.com/2008/06/event-listener.html - 101k
Reade more >>

clock