WELCOME TO MY BLOG 다이앤

Kamis, 08 Maret 2012

Abstract Windowing Toolkit (AWT)

Abstract Windowing Toolkit (AWT) vs. Swing
The Java Foundation Class (JFC), merupakan bagian penting dari Java SDK, yang termasuk dalam koleksi dari API dimana dapat mempermudah pengembangan aplikasi JAVA GUI. JFC termasuk diantara 5 bagian utama dari API yaitu AWT dan Swing. Tiga bagian yang lainnya dari API adalah Java2D, Accessibility, dan Drag dan Drop. Semua itu membantu pengembang dalam mendesain dan mengimplementasikan aplikasi visual yang lebih baik.

AWT dan Swing menyediakan komponen GUI yang dapat digunakan dalam membuat aplikasi Java dan Applet. Anda akan mempelajari applet pada bab berikutnya. Tidak seperti beberapa komponen AWT yang menggunakannative code, keseluruhan Swing ditulis menggunakan bahasa pemrograman Java. Swing menyediakan implementasi platform-independent dimana aplikasi yang dikembangkan dengan platform yang berbeda dapat memiliki tampilan yang sama. Begitu juga dengan AWT menjamin tampilan look and feel pada aplikasi yang dijalankan pada dua mesin yang berbeda menjadi terlihat sama. Swing API dibangun dari beberapa API yang mengimplementasikan beberapa jenis bagian dari AWT. Kesimpulannya, komponen AWT dapat digunakan bersama komponen Swing.

Komponen GUI pada AWT

ü  Window Classes Fundamental
Dalam mengembangkan aplikasi GUI, komponen GUI seperti tombol atau textfield diletakkan
di dalam kontainer. Berikut ini adalah daftar dari beberapa class penting pada kontainer yang
telah disediakan oleh AWT.
·         Komponen : Abstract Class untuk object yang dapat ditampilkan pada console dan berinteraksi dengang user. Bagian utama dari semua class AWT.
·         Kontainer : Abstract Subclass dari Component Class. Sebuah komponen yang dapat menampung komponen yang lainnya.
·         Panel : Turunan dari Container Class. Sebuah frame atau window tanpa titlebar, menubar tidak termasuk border. Superclass dari applet class.
·         Window : Turunan dari Container class. Top level window, dimana berarti tidak bisa dimasukkan dalam object yang lainnya.Tidak memiliki border dan menubar.
·         Frame :  Turunan dari window class. Window dengan judul, menubar, border dan pengatur ukuran di pojok. Memiliki empat constructor , dua diantaranya memiliki penulisan seperti :Frame(), Frame(String title)

Untuk mengatur ukuran window, menggunakan method setSize.
void setSize(int width, int height)
mengubah ukuran komponen ini dengan width dan height sebagai parameter.
void setSize(Dimension d)
mengubah ukuran dengan d.width dan d.height berdasar pada spesifikasiDimension d.

Default dari window adalah not visible atau tak tampak hingga Anda mengatur visibility menjadi true. Inilah syntax untuk method setVisible.
void setVisible(boolean b)
Dalam mendesain aplikasi GUI, Object Frame selalu digunakan. Dibawah ini adalah contoh bagaimana membuat sebuah aplikasi.
import java.awt.*;
public class SampleFrame extends Frame {
public static void main(String args[]) {
SampleFrame sf = new SampleFrame();
sf.setSize(100, 100); //Coba hilangkan baris ini
sf.setVisible(true); //Coba hilangkan baris ini
}
}
perhatikan bahwa tombol tutup pada frame tidak akan bekerja karena tidak ada mekanisme
event handling yang ditambahkan di dalam aplikasi.

ü Grafik
Beberapa method grafik ditemukan dalam class Graphic. Dibawah ini adalah daftar dari beberapa method.


Hubungan dari class ini adalah class Color, dimana memiliki tiga constructor.



Dibawah ini adalah contoh program yang menggunakan beberapa method di dalam class
Graphic.
import java.awt.*;
public class GraphicPanel extends Panel {
GraphicPanel() {
setBackground(Color.black); //Konstanta dalam class Color
}
public void paint(Graphics g) {
g.setColor(new Color(0,255,0)); //hijau
g.setFont(new Font("Helvetica",Font.PLAIN,16));
g.drawString("Hello GUI World!", 30, 100);
g.setColor(new Color(1.0f,0,0)); //red
g.fillRect(30, 100, 150, 10);
}
public static void main(String args[]) {
Frame f = new Frame("Testing Graphics Panel");
GraphicPanel gp = new GraphicPanel();
f.add(gp);
f.setSize(600, 300);
f.setVisible(true);
}
}
Agar panel dapat terlihat atau visible, dia harus diletakkan didalam window yang dapat terlihat seperti sebuah frame.

ü Komponen AWT
Berikut ini adalah daftar dari kontrol AWT. Kontrol adalah komponen seperti tombol atau textfield yang mengijinkan user untuk berinteraksi dengan aplikasi GUI. Berikut ini semua subclass dari class Components.



Berikut adalah aplikasi membuat sebuah frame dengan kontrol yang telah dimasukkan di dalamnya.
import java.awt.*;
class FrameWControls extends Frame {
public static void main(String args[]) {
FrameWControls fwc = new FrameWControls();
fwc.setLayout(new FlowLayout()); //akan dibahas lebih detail
pada pembahasan berikutnya
fwc.setSize(600, 600);
fwc.add(new Button("Test Me!"));
fwc.add(new Label("Labe"));
fwc.add(new TextField());
CheckboxGroup cbg = new CheckboxGroup();
fwc.add(new Checkbox("chk1", cbg, true));
fwc.add(new Checkbox("chk2", cbg, false));
fwc.add(new Checkbox("chk3", cbg, false));
List list = new List(3, false);
list.add("MTV");
list.add("V");
fwc.add(list);
Choice chooser = new Choice();
chooser.add("Avril");
chooser.add("Monica");
chooser.add("Britney");
fwc.add(chooser);
fwc.add(new Scrollbar());
fwc.setVisible(true);
}
}

Selamat mencoba :)

Class - Class Event

Sebuah event object mempunyai sebuah class event sebagai tipe data acuannya. Akar
dari hirarki class event adalah class EventObject, yang dapat ditemukan pada paket
java.util. Immediate subclass dari class EventObject adalah class AWTEvent. Class
AWTEvent didefinisikan pada paket java.awt. Itu merupakan akar dari semua AWTbased
events. Berikut ini beberapa dari class-class AWT event.



Catatan, bahwa semua subclass-subclass AWTEvent mengikuti konvensi nama ini:
<Type>Event

Komponen Swing

Seperti pada package AWT, package dari Swing menyediakan banyak class untuk membuat aplikasi GUI. Package tersebut dapat ditemukan dijavax.swing. Perbedaan utama antara keduanya adalah komponen Swing ditulis menyeluruh menggunakan Java. Kesimpulannya, program GUI ditulis menggunakan banyak class dari package Swing yang mempunyai tampilan look and feel yang sama meski dijalankan pada paltform yang berbeda. Lebih dari itu, Swing menyediakan komponen yang lebih menarik seperticolor chooser dan option pane.

Nama dari komponen GUI milik Swing hampir sama persis dengan komponen GUI milik AWT.
Perbedaan jelas terdapat pada penamaan komponen. Pada dasarnya, nama komponen Swing
sama dengan nama komponen AWT tetapi dengan tambahan huruf J pada prefixnya. Sebagai
contoh, satu komponen dalam AWT adalah button class. Sedangkan pada Swing, nama
komponen tersebut menjadi Jbutton class. Berikut adalah daftar dari komponen Swing.





Untuk daftar yang lengkap dari komponen Swing, Anda dapat melihatnya di dokumentasi API.
·         Setting Up Top-Level Containers
Seperti disebutkan diatas, top-level containers seperti Jframe dan Japplet dalam Swing sangat
tidak cocok dengan AWT. Ini adalah syarat menambahkan komponen ke dalam kontainer. Jika
Anda ingin menambahkan langsung sebuah komponen kedalam kontainer sebagai kontainer
AWT, pertama-tama Anda telah mendapatkan content pane dari kontainer. Untuk melakukan
hal tersebut, Anda akan menggunakan method getContentPane dari container.
·         Contoh Jframe
import javax.swing.*;
import java.awt.*;
class SwingDemo {
JFrame frame;
JPanel panel;
JTextField textField;
JButton button;
Container contentPane;
void launchFrame() {
/* inisialisasi */
frame = new JFrame("My First Swing Application");
panel = new JPanel();
textField = new JTextField("Default text");
button = new JButton("Click me!");
contentPane = frame.getContentPane();
/* menambahkan komponen-komponen ke panel– menggunakan
FlowLayout sebagai default */
panel.add(textField);
panel.add(button);
/* menambahkan komponen-komponen contentPane– menggunakan
BorderLayout */
contentPane.add(panel, BorderLayout.CENTER);
frame.pack();
//menyebabkan ukuran frame menjadi dasar pengaturan komponen
frame.setVisible(true);
}
public static void main(String args[]) {
SwingDemo sd = new SwingDemo();
sd.launchFrame();
}
}
Perlu diperhatikan pada package java.awt masih saja diimpor karena layout manager yang
digunakan terdapat pada package tersebut. Juga, memberi judul pada frame dan mengepack
komponen di dalam frame dapat juga dilakukan untuk frame AWT.
Berikut adalah keluaran dari program diatas.




 CContoh JOptionPane
import javax.swing.*;
class JOptionPaneDemo {
JOptionPane optionPane;
void launchFrame() {
optionPane = new JOptionPane();
String name = optionPane.showInputDialog("Hi, what's your
name?");
optionPane.showMessageDialog(null,
"Nice to meet you, " + name + ".", "Greeting...", optionPane.PLAIN_MESSAGE);
System.exit(0);
}
public static void main(String args[]) {
new JOptionPaneDemo().launchFrame();
}
}

Lihat, begitu mudahnya memasukkan input dari user. Berikut ini adalah hasil dari contoh program diatas:

 Selamat Mencoba :)

Konsep Dasar Stream IO Part1

Tipe-Tipe Stream yang Umum Digunakan :
stream karakter dan byte. Kita hanya mengulang perbedaan mendasar antara
keduanya. 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.

Stream juga dikategorikan berdasarkan apakah mereka digunakan untuk membaca atau
menulis stream.

Contoh Stream/IO :

import java.io.*;
class CopyFile {
void copy(String inptt, String output) {
FileReader reader;
FileWriter writer;
int data;
try {
reader = new FileReader(input);
writer = new FileWriter(output);
while ((data = reader.read()) != -1) {
writer.write(data);
}
reader.close();
writer.close();
} catch (IOException ie) {
ie.printStackTrace();
}

}
public static void main(String args[]) {
String inputFile = args[0];
String outputFile = args[1];
CopyFile cf = new CopyFile();
cf.copy(inputFile, outputFile);
}
}

Variabel Java

Seperti yang kita semua tau kalo tiap bahasa pemrograman pasti punya jenis-jenis variabel masing-masing, nah Java memiliki beberapa jenis variabel yang dapat dikelompokkan sebagai bdrikut :

Instance Variables (tidak statis). Dalam bahasa pemrograman berorientasi objek, objek menyimpan variabel yang tidak dideklarasikan dengan kata kunci static dalam kategori non-statis, atau dapat berubah-ubah. Suatu kelas dapat dijelmakan ke dalam beberapa objek. Nilai yang terkandung dalam variabel tak-statis ini berbeda untuk setiap objeknya.

Class Variables (statis). Variabel ini merupakan bagian integral dari suatu kelas, dan tidak ada satu objek pun yang dapat menyatakan kepemilikan atas variabel ini. Variabel yang dideklarasikan sebagai statis digunakan bersama oleh semua objek. Variabel ini lebih bersifat global yang nilainya sama untuk setiap objek pada kelas yang bersangkutan.

Local Variables. Variabel ini didefinisikan di dalam suatu metoda (method) atau dalam suatu prosedur. Variabel ini bersifat lokal karena hanya dapat diakses oleh metoda atau prosedur tersebut.

Paramater atau argum

en adalah variabel yang digunakan pada saat suatu metoda atau prosedur dipanggil. Parameter berguna untuk memberikan nilai awal untuk diteruskan (pass) ke dalam suatu prosedur atau metoda.

Aturan membuat nama variable :

* Dimulai dengan huruf, kemudian diikuti dengan huruf atau angka dan underscore. nama juga dapat dimulai dengan tanda_ atau $ tapi tidak direkomendasikan.

* Panjang variabel tidak dibatasi,secara umum dan praktis tidak melebihi 20 karakter.

Demikian materi Perkuliahan awal , sebelum kita lebih mempelajari Pemrograman Java . Semoga bermanfaat bagi kita semua.
:)