Gambar Original Template

Jangan Lupa Folllow (http://www.bahepu.com/)

Photo Profil Saya

Jangan Lupa Folllow (http://www.bahepu.com/)

Buku Adalah Sumber Pengetahuan

Jangan Lupa Folllow (http://www.bahepu.com/)

Einstein Adalah Ilmuwan Terbesar Pada Abad Ke-20

Jangan Lupa Folllow (http://www.bahepu.com/)

Tabel Periodik Unsur Kimia

Jangan Lupa Folllow (http://www.bahepu.com/)

Pages

Tuesday, October 23, 2012

Menggambar Di Java Dengan AWT

Assalamualaikum Wr.Wb          
        Akhirnya bisa ngeposting juga, setelah tadi laptop saya OVERHEAT dan NETBEANS Saya Di Install Ulang hahahahha... SEDIKIT CURHAT. Oke langsung saja masuk ke dalam pembahasan Bagaimana Cara Menggambar Di Java Dengan AWT? baik kita harus mengetahui apa itu AWT, tapi sebelumnya APA PERBEDAAN SWING DAN AWT?


Dalam membangun objek GUI di Java, Kita bisa menggunakan AWT atau Swing, perbedaan keduanya adalah, bahwa AWT adalah tampilan dasar dari setiap target platform (Windows, Macintosh, Solaris) atau berdiri sesuai dengan mekanisme sebuah platform, seperti slogan Java (Write once run everywhere), hal tersebut bagus untuk sebuah program yang simpel, tetapi menjadi sulit ketika mengimplementasikan sebuah program yang lebih kompleks dan harus sesuai dengan target platform. Setiap User Interface elemen seperti Button, TextField, ScrollBar memiliki tingkah laku (behavior) yang berbeda di setiap platform. Yang lebih parah lagi, AWT User Interface Library memiliki bug yang berbeda di setiap platform, hal ini mengubah slogan Java menjadi (Write once, Debug everywhere).
Maka hadirlah Swing yang menawarkan tampilan yang lebih kaya dan bagus. Swing tidak berdasarkan platform yang dituju tetapi menggunakan metode “Painted” yaitu, setiap User Interface Elemen di Gambar ke dalam window/frame kosong. Sehingga setiap User Interface Elemen akan tampil dan berprilaku sama di setiap platform.
Swing bukan pengganti dari AWT, dan tidak bisa berdiri sendiri, karena setiap program butuh berkomunikasi dengan mekanisme dasar dari target platform seperti Event Handling yang ada di AWT, jadi Swing akan selalu berdampingan dengan AWT.
Sayangnya Swing lebih lambat tampil di layar. Dan ketika User Interface tampak sama di setiap platform, maka juga akan tampak berbeda untuk tampilan standar sebuah platform. Dan Java mengatasinya dengan baik sekali, yaitu Swing menyediakan theme specific (Windows theme, Motif Theme, Ocean Theme), yang bisa disesuaikan dengan platform.
Setelah Anda Membaca APA PERBEDAAN SWING DAN AWT, Mari kita langsung saja menggambar:

1. Langkah Pertama 

Buat Project Di Netbeans Dengan Nama Bebas Seterah Anda,Kalau Saya Di Beri Nama TugasJavaAWT.

2. Lalu Ketikkan Di Netbeans Seperti Di Bawah Ini:


3. Langkah Ketiga Ketik Di dalam Method Paint Berikut Scriptnya :

 
       for (int z = 0; z <= 680; z++) {
            //warna background asal 
            g.setColor(Color.BLUE);
            g.fillRect(0, 0, 800, 600);
            //warna garisnya dan fillnya
            g.setColor(Color.yellow);
            //bikin garis mataharinya
            g.drawLine(100 + z, 67, 240 + z, 67);
            g.drawLine(170 + z, 5, 170 + z, 140);
            g.drawLine(120 + z, 10, 220 + z, 130);
            g.drawLine(220 + z, 10, 120 + z, 130);

            //bikin matahari
            g.fillArc(120 + z, 20, 100, 100, 360, 360);

            //awan
            g.setColor(new Color(0, 144, 255));
            g.fillOval(280 - z + 200, 20, 100, 80);
            g.fillOval(350 - z + 200, 10, 100, 100);
            g.fillOval(425 - z + 200, 20, 100, 80);

            //mengganti warna background awal setelah selesai
            if (z == 680) {
                //warna background
                g.setColor(new Color(8, 4, 88));
                g.fillRect(0, 0, 800, 600);
            }


            //RUMAH
            //atap rumah
            int x[] = {600, 700, 500};
            int y[] = {300, 400, 400};
            g.setColor(new Color(234, 147, 53));
            g.fillPolygon(x, y, 3);
            //tembok rumah
            int a[] = {500, 700, 700, 500};
            int b[] = {400, 400, 500, 500};
            g.setColor(new Color(44, 195, 115));
            g.fillPolygon(a, b, 4);
            //pintu rumah
            int c[] = {570, 630, 630, 570};
            int d[] = {420, 420, 500, 500};
            g.setColor(new Color(234, 147, 53));
            g.fillPolygon(c, d, 4);
            //jendela rumah
            int e[] = {645, 688, 688, 645};
            int f[] = {420, 420, 465, 465};
            g.setColor(Color.WHITE);
            g.fillPolygon(e, f, 4);
            //gagang pintu
            g.setColor(new Color(246, 227, 45));
            g.fillRect(575, 450, 10, 20);
            g.setColor(new Color(234, 147, 53));
            g.fillOval(575, 451, 9, 9);
            g.setColor(new Color(65, 64, 63));
            g.fillOval(577, 462, 5, 5);
            //bikin garis jendela rumah
            g.setColor(Color.black);
            g.drawLine(645, 442, 688, 442);
            g.drawLine(666, 420, 666, 465);
            g.drawLine(645, 420, 645, 465);
            g.drawLine(688, 420, 688, 465);
            g.drawLine(645, 420, 688, 420);
            g.drawLine(645, 465, 688, 465);
            //lantai rumah
            g.setColor(new Color(163, 165, 149));
            g.fillRect(0, 500, 800, 100);
            //jalan rumah
            g.setColor(Color.LIGHT_GRAY);
            g.fillRect(40, 524, 100, 20);
            g.fillRect(200, 524, 100, 20);
            g.fillRect(360, 524, 100, 20);
            g.fillRect(520, 524, 100, 20);
            g.fillRect(680, 524, 100, 20);


            //gambar android
            //tangan kiri
            g.setColor(Color.GREEN);
            g.fillRoundRect(100, 420 - 40 - z, 10, 45, 12, 10);
            g.setColor(new Color(228, 235, 228));//warna efek
            g.drawRoundRect(100, 420 - 40 - z, 10, 45, 12, 10);//membuat efek
            //badan
            g.setColor(Color.GREEN);
            g.fillRoundRect(115, 420 - z, 65, 65, 20, 20);
            g.setColor(new Color(228, 235, 228));//warna efek
            g.drawRoundRect(115, 420 - z, 65, 65, 20, 20);//membuat efek 
            g.drawRoundRect(114, 419 - z, 67, 67, 20, 20);//membuat efek
            //tangan kanan
            g.setColor(Color.GREEN);
            g.fillRoundRect(185, 420 - 40 - z, 10, 45, 12, 10);
            g.setColor(new Color(228, 235, 228));//warna efek
            g.drawRoundRect(185, 420 - 40 - z, 10, 45, 12, 10);//membuat efek
            //kaki kiri
            g.setColor(new Color(255, 153, 51));//warna efek berapi
            g.fillRoundRect(133, 485 - z, 10, 45, 50, 150);//membuat efeknya
            int kki[] = {130, 145, 145, 130};
            int ikk[] = {485 - z, 485 - z, 510 - z, 510 - z};
            g.setColor(Color.GREEN);
            g.fillPolygon(kki, ikk, 4);
            g.fillArc(130, 500 - z, 15, 15, 180, 180);
            g.setColor(new Color(228, 235, 228));//warna efek
            g.drawLine(130, 485 - z, 130, 510 - z);//membuat efek
            g.drawLine(145, 485 - z, 145, 510 - z);//membuat efek
            g.drawArc(130, 500 - z, 15, 15, 180, 180);//membuat efek
            //kaki kanan
            g.setColor(new Color(255, 153, 51));//warna efek berapi
            g.fillRoundRect(153, 485 - z, 10, 45, 50, 150);//membuat efeknya
            int kkk[] = {150, 165, 165, 150};
            int akk[] = {485 - z, 485 - z, 510 - z, 510 - z};
            g.setColor(Color.GREEN);
            g.fillPolygon(kkk, akk, 4);
            g.fillArc(150, 500 - z, 15, 15, 180, 180);
            g.setColor(new Color(228, 235, 228));//warna efek
            g.drawLine(150, 485 - z, 150, 510 - z);//membuat efek
            g.drawLine(165, 485 - z, 165, 510 - z);//membuat efek
            g.drawArc(150, 500 - z, 15, 15, 180, 180);//membuat efek
            //kepala android
            g.setColor(Color.GREEN);
            g.fillArc(115, 382 - z, 65, 65, -180, -180);
            g.setColor(new Color(228, 235, 228));//warna efek
            g.drawArc(115, 382 - z, 65, 65, -180, -180);//membuat efek
            g.drawLine(115, 415 - z, 180, 415 - z);//membuat efek
            //mata kiri android
            g.setColor(Color.WHITE);
            g.fillArc(130, 392 - z, 8, 8, 360, 360);
            //mata kanan android
            g.fillArc(158, 392 - z, 8, 8, 360, 360);
            //tanduk android
            g.setColor(Color.GREEN);
            g.drawLine(146, 400 - z, 168, 376 - z);
            g.drawLine(146, 400 - z, 130, 376 - z);

            try {
                Thread.sleep(50);
            } catch (InterruptedException ex) {
                System.out.println("Error!");
            }
        }
Screen Awal:

Screen Akhir:

Apabila Anda Ingin Mendownload File TugasJavaAWT.class, Silahkan Klik Gambar di bawah ini:
TugasJavaAWT.class





Apabila Anda Ingin Mendownload FileTugasJavaAWT.JAR, Silahkan Klik Gambar di bawah ini:
Soalganjil.class


Sekian dari saya mohon maaf apabila ada salah kata dalam penulisan,karena Anda tidak akan pernah mencapai sukses yang sungguh-sungguh jika anda tidak mencintai apa yang sedang anda lakukan.
apabila terdapat kesalahan mohon beritahu saya lewat komen. Terima Kasih..

Merubah Icon Pada Aplikasi Swing Java



Merubah Icon Pada Aplikasi Swing Java Image 
Apa itu swing java ?
Swing Java adalah salah satu pemrograman berbasis GUI(Graphical User Interface) di Java. Sesungguhnya di Java terdapat dua macam pemrograman berbasis GUI(Graphical User Interface) yaitu : AWT dan Swing.
Namun dalam perkembangannya AWT sudah tidak dianjurkan untuk digunakan dikarenakan faktor keamanan. Banyak sekali fitur yang terdapat di Swing, namun dalam kesempatan ini kita hanya akan mengganti icon saja.
Walaupun Swing jarang di gunakan di aplikasi desktop base, karena kebanyakan developer lebih memilih menggunakan VB, Delphi ataupun .NET yang lebih ringan dan tidak makan banyak resource memory karena sifatnya yang native.
Namun penggunaan java bisa untuk lintas platform sehingga kita tidak perlu membuat aplikasi dua kali.
  • Memulai Coding
Tentunya saya tidak perlu mengingatkan kembali, dimana anda harus menulis kode program java serta bagaimana cara melakukan kompilasi dan mengeksekusinya.
Dibawah ini kode program sebelum icon terganti
// SebelumGanti.java

import javax.swing.JFrame;
import javax.swing.SwingUtilities;

 class SebelumGanti {
 private static void gantiIcon() {
   JFrame.setDefaultLookAndFeelDecorated(true);
   JFrame f = new JFrame("Icon Belum Terganti");
   f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
   f.setSize(400, 400);
   f.setVisible(true);
 }

 public static void main(String[] args) {
 SwingUtilities.invokeLater(new Runnable() {
   public void run() {
  gantiIcon();
   }
  });
    }
 }
Merubah Icon Pada Aplikasi Swing Java Image
Dibawah ini kode program untuk mengganti icon
// SesudahGanti.java
import javax.swing.JFrame;
import javax.swing.ImageIcon;
import javax.swing.SwingUtilities;
import java.awt.Toolkit;

public class SesudahGanti {
  private static void gantiIcon() {

// ini membuat frame tampilan yang sama di semua sistem operasi
   JFrame.setDefaultLookAndFeelDecorated(true);

   // membuat objek frame yang mempunyai judul
   JFrame f = new JFrame("Icon Sudah Terganti");

   // cara pertama untuk merubah icon pada swing
   ImageIcon gambar = new ImageIcon("bomb.png");
   f.setIconImage(gambar.getImage());

   // cara kedua untuk merubah icon pada swing
   f.setIconImage(Toolkit.getDefaultToolkit().getImage("bomb.png"));
   f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
   f.setSize(400, 400);
   f.setVisible(true);
 }

  public static void main(String[] args) {
 // aplikasi swing ditempatkan di thread yang berbeda
 SwingUtilities.invokeLater(new Runnable() {
   public void run() {
  gantiIcon();
   } });
 }
  }
Merubah Icon Pada Aplikasi Swing Java Image
Demikianlah tutorial singkat mengenai aplikasi desktop menggunakan java. Semoga bisa bermanfaat dan membantu untuk anda yang sedang belajar pemrograman java. Kita bertemu lagi di edisi mendatang.

Pengertian Java GUI




Java GUI mendukung pembangunan melalui Abstract Windowing Toolkit, atau AWT. AWT adalah Java yang setara dengan Microsoft Windows Common Control Library atau Motif widget toolkit. Ini termasuk pendukung untuk pemrograman grafik sederhana serta sejumlah komponen seperti tombol, menu, daftar, dan kelas check box.

Tiga langkah yang umum untuk semua aplikasi Java GUI adalah:

1. Pembentukan Container
2. Tata letak komponen GUI
3. Penanganan event.

JAVA GUI HISTORY

AWT vs. Swing/JFC

o AWT
* Abstract Window Toolkit
* AWT memberikan beberapa komponen yang sederhana, tidak sebanyak Swing
* Memiliki beberapa masalah dalam pengimplementasiannya awal tahun 1996
* AWT menggambar/membuat interface dengan menggunakan “native peers” à pembuatan tombol AWT membuat hubungan yang sinkron dengan (Unix, Mac, Win 32) terhadap suatu screen,
* Keuntungan : aplikasi AWT memiliki penampilan yang asli/lugas (bawaan SO)
*
o Swing
* Juga disebut dengan JFC
* Di implementasikan oleh Java à seperti bytecode yang dapat berjalan ke semua platform
* Swing memiliki 10 kali lebih banyak class, dan kemampuan dibanding AWT
* Swing memiliki look-and-feel yang pluggable. Terlihat ketika pembuatan tombol

MATISSE GUI BUILDER

Mattise GUI Builder yang baru mengubah sama sekali konsep perancangan program Java GUI dalam Netbeans. Sebelumnya, untuk merancang sebuah form Java GUI, kita disibukkan dengan pengaturan layout yang rumit. Mulai dari pemilihan layout-manager yang cocok, peletakan dan pengaturan posisi komponen dalam layout, sampai pengaturan berbagai atribut layout.

1. Free Design

Sekarang dengan paradigma baru free design yang diusung oleh Project Matisse, merancang GUI dalam Netbeans menjadi lebih mudah.

Komponen Java (baik AWT, Swing, Beans) benar-benar dapat diletakkan dalam form dengan konsep drag n drop atau pick n plop.

Kita tidak perlu lagi peduli dengan layout dan layout manager. Semua akan diatur secara otomatis oleh GUI Builder

Secara background, GUI Builder akan menerjemahkan semua susunan komponen yang kita letakkan dalam form, dengan memakai layout manager baru, GrupLayout, serta berbagai konstruksi yang ada didalam paket Swing.

Secara otomatis kode program dihasilkan oleh GUI Builder ini.

2. Snapping

Saat kita meletakkan komponen dalam form, GUI Builder secara otomatis akan menampilkan garis bantu (guidelines) secara visual. Yang akan membantu kita dalam menentukan posisi komponen relatif terhadap komponen lainnya ataupun relatif terhadap tepi kontainer.

3. Visual Feedback

GUI Builder akan menampilkan berbagai visual-feedback. Satu yang telah dikemukakan diatas adalah garis bantu yang ditampilkan saat penempatan komponen. Visual feedback lainnya, yang ditampilkan paska peletakan, akan menunjukkan hubungan anchoring (penjangkaran atau posisi absolut) dan chaining (keterkaitan) antar komponen.

JAVA PACKAGE

A Pengertian Package
Package adalah mengelompokkan kelas-kelas yang saling berelasi dan interfaces yang memberikan proteksi terhadap access kelas yang tidak boleh diakses oleh kelas lain karena tidak berelasi,dan manajemen nama. Packages tidak lebih dari sekedar cara untuk mengorganisir file kedalam direktori yang berbeda berdasarkan fungsionalitas dan kegunaannya. Packaging membantu kita untuk menghindari terjadinya collision ketika kita menggunakan nama kelas yang sama dengan yang sudah ada. Packaging juga membantu programmer dalam mencari dan menggunakan nama kelas dan mengontrol akses.
B Package – package dalam Java

  1. Package java.applet
Menyediakan kelas yang diperlukan untuk membuat applet dan kelas applet digunakan untuk berkomunikasi dengan konteks applet nya. Kerangka applet melibatkan dua entitas: applet applet dan konteks. applet adalah suatu jendela embeddable dengan beberapa metode tambahan bahwa konteks applet dapat digunakan untuk menginisialisasi, mulai, dan menghentikan applet. Konteks applet adalah sebuah aplikasi yang bertanggung jawab untuk loading dan menjalankan applet. Misalnya, konteks applet bisa Web browser atau lingkungan pengembangan applet.
  1. Package java.awt
Berisi semua kelas untuk membuat antarmuka pengguna grafis dan untuk lukisan dan gambar. A user interface obyek seperti tombol atau scrollbar disebut, dalam terminologi AWT, komponen. Kelas Komponen adalah akar dari semua komponen AWT. Lihat Komponen untuk penjelasan rinci mengenai properti yang semua komponen AWT saham. Beberapa komponen kegiatan api ketika user berinteraksi dengan komponen. Kelas AWTEvent dan subclass perusahaan digunakan untuk mewakili peristiwa yang komponen AWT dapat api. Lihat AWTEvent untuk deskripsi dari model acara AWT. kontainer adalah komponen yang dapat berisi komponen dan kemasan lainnya. Sebuah kontainer juga dapat memiliki manajer layout yang mengontrol penempatan komponen visual dalam wadah. Paket AWT berisi beberapa kelas manajer layout dan interface untuk membangun tata letak manajer kita sendiri. Lihat Kontainer dan LayoutManager untuk informasi lebih lanjut.
  1. Package java.awt.color
Menyediakan kelas untuk ruang warna. Ini mengandung sebuah implementasi ruang warna berdasarkan Konsorsium Warna Internasional (ICC) Profil Spesifikasi Format, Versi 3,4, 15 Agustus 1997. Hal ini juga berisi profil warna berdasarkan ICC Profil Spesifikasi Format.
  1. Package java.awt.datatransfer
Menyediakan antarmuka dan kelas untuk mentransfer data antara dan di dalam aplikasi. Yang berarti objek “dipindahtangankan”, dimana objek tersebut akan ditransfer antara atau dalam aplikasi. Sebuah objek mengidentifikasi dirinya sebagai yang dipindahkan dengan mengimplementasikan antarmuka dipindahtangankan. Package ini juga menyediakan mekanisme clipboard, yang merupakan objek yang sementara memegang data yang akan dipindahkan yang kemudian ditransfer dalam aplikasi. clipboard ini biasanya digunakan untuk operasi copy dan paste. Meskipun mungkin untuk menciptakan clipboard untuk digunakan dalam suatu aplikasi, aplikasi yang menggunakan clipboard sistem untuk memastikan data dapat ditransfer di seluruh aplikasi yang berjalan pada platform.

  1. Package java.awt.dnd
Drag dan Drop adalah perlakuan manipulasi langsung yang ditemukan di banyak sistem User Interface Grafis yang menyediakan mekanisme untuk mentransfer informasi antara dua entitas secara logis berhubungan dengan elemen-elemen presentasi di GUI. Biasanya didukung oleh gerakan fisik pengguna manusia menggunakan perangkat input yang sesuai, Drag dan Drop menyediakan baik untuk mengaktifkan mekanisme umpan balik terus-menerus mengenai kemungkinan hasil data transfer berikutnya untuk pengguna selama navigasi atas elemen presentasi di GUI, dan fasilitas untuk transfer data berikutnya. Package ini mendefinisikan kelas-kelas dan interface yang diperlukan untuk melakukan operasi Drag dan Drop di Java. Juga mendefinisikan kelas untuk sumber-drag dan drop-sasaran, serta untuk mentransfer data diseret. Package menyediakan sarana untuk memberikan umpan balik visual kepada pengguna di seluruh durasi Drag dan Drop operasi. A Drag Drop khas dan operasi dapat diuraikan ke dalam negara-negara berikut  (tidak sepenuhnya berurutan):
  • Sebuah DragSource ada, terkait dengan beberapa elemen presentasi (Komponen) di GUI, untuk melakukan Drag dan Drop dari beberapa data yang berpotensi dipindahkan.
  • 1 atau lebih DropTarget (s) masuk ke / keluar dari keberadaan, terkait dengan elemen-elemen presentasi di GUI (Komponen), berpotensi mampu mengkonsumsi tipe data dipindahkan.
  • Sebuah DragGestureRecognizer diperoleh dari DragSource dan berhubungan dengan Komponen dalam rangka untuk melacak dan mengidentifikasi setiap Drag memulai gerakan oleh pengguna melalui Komponen tersebut.
  • Seorang pengguna memberi isyarat atas Komponen, yang terdaftar DragGestureRecognizer untuk mendeteksi, dan memberitahukan DragGestureListener atas. Catatan: Meskipun API ini secara konsisten mengacu pada stimulus untuk operasi drag dan drop menjadi gerakan fisik oleh pengguna manusia, ini tidak menghalangi operasi JG pemrograman didorong diberikan pelaksanaan yang tepat atas suatu DragSource. Package ini berisi kelas abstrak MouseDragGestureRecognizer untuk mengenali gerakan mouse perangkat. subclass abstrak lain mungkin disediakan oleh platform untuk mendukung perangkat input lain atau kelas Komponen semantik tertentu.
  • The DragGestureListener menyebabkan DragSource untuk memulai operasi Drag dan Drop pada nama pengguna, mungkin menjiwai para kursor GUI dan / atau penyerahan suatu  item yang merupakan subjek operasi.
  • Sebagai gerakan pengguna bernavigasi di Komponen di GUI dengan DropTarget terkait, yang menerima pemberitahuan DragSource agar dapat memberikan “Drag Over” efek umpan balik, dan DropTarget menerima pemberitahuan untuk memberikan “Tarik Di bawah” efek umpan balik berdasarkan operasi didukung dan tipe data yang terlibat.
Kejadian ini akan menggerakkan kursor secara logis di hirarki GUI, memotong geometri Komponen GUI, mungkin mengakibatkan kursor “logis” sulit masuk, persimpangan, dan kemudian meninggalkan Komponen dan terkait DropTarget. Objek DragSource memanifestasikan “Drag Over” yang memberikan umpan balik kepada user, dalam kasus yang khas dengan menjiwai kursor GUI yang terkait dengan kursor logis. DropTarget objek yang nyata “Drag Under” memberikan umpan balik kepada pengguna, dalam kasus yang khas, dengan rendering animasi ke dalam mereka yang terkait GUI Component di bawah kursor GUI. Penentuan efek umpan balik, dan keberhasilan atau kegagalan akhir transfer data, harus satu terjadi, adalah parameter sebagai berikut:
  • Dengan transfer “operasi” yang dipilih oleh user, dan didukung baik oleh DragSource dan DropTarget : Copy, Move dan Reference (link).
  • Pada persimpangan dari himpunan tipe data yang disediakan oleh DragSource dan set tipe data dipahami oleh DropTarget.
  • Ketika user mengakhiri operasi Drag, biasanya menghasilkan Drop sukses, baik DragSource dan DropTarget menerima pemberitahuan yang mencakup, dan hasil dalam negosiasi jenis dan transfer, informasi yang terkait dengan DragSource melalui objek dipindahkan.
  1. Package java.awt.event
Menyediakan interface dan kelas untuk memanggil berbagai jenis kegiatan yang ditolak oleh komponen AWT. Kejadian yang ditolak oleh sumber acara. Sebuah event listener register dengan sumber event untuk menerima pemberitahuan tentang peristiwa jenis tertentu. Paket ini mendefinisikan event dan event listener, serta event listeners adapters, yang memberikan kenyamanan pada class untuk mempermudah proses penulisan event listeners.
  1. Package java.awt.font
Menyediakan class dan interface yang berhubungan dengan font. Package ini mendukung berbagai macam type font, mulai dari Type 1, Type 1 Multiple Master Fonts, dan TrueType fonts.
  1. Package java.awt.geom
Menyediakan class Java 2D untuk menampilkan definisi dan operasi pada 2 objek dimensi geometri yang saling berhubungan. Beberapa komponen penting yang terdapat pada package ini yaitu :
  • Class untuk memanipulasi geometri, seperti AffineTransform dan PathIterator interface yang diimplementasikan oleh Shape objects.
  • Class yang menginplementasikan Shape interface, seperti CubicCurve2D, Ellipse2D, Line2D, Rectangle2D, dan GeneralShape.
  • Wilayah class yang menyediakan mekanisme untuk menambah operasi subtract, intersect, dan exclusiveOR  pada Shape objects yang lain.
  1. Package java.awt.im
Menyediakan class dan interface untuk menginput model – model framework. Package ini mempunyai sebuah text editing untuk menerima sebuah text input maupaun input methods. Input methods merupakan suatu  komponen software yang dapat digunakan oleh user untuk memasukan text dari keyboard. Bahasa yang umumnya digunakan untuk yaitu Jepang, Cina, atau Korea dan menggunakan ribuan karakter yang berbeda – pada keyboard. Namun, kerangka kerja ini juga mendukung metode input untuk bahasa lain dan penggunaan input yang sama sekali mempunyai mekanisme yang berbeda, seperti tulisan tangan atau suara.
  1. Package java.beans
Terdiri dari class yang terkait untuk mengembangkan komponen beans yang berdasarkan arsitektur JavaBeans. Dalam menjalankan aplikasi tak banyak class beans yang digunakan. Sebagai contoh, class event digunakan oleh beans bahwa fire property dan vetoable. Namun, sebagian besar class – class dalam package ini dimaksudkan untuk digunakan oleh bean editor (yaitu, suatu lingkungan pengembangan untuk mengubah dan meletakkan bean untuk membuat aplikasi). Secara khusus, class ini membantu bean editor membuat user interface bahwa user dapat digunakan untuk menyesuaikan bean. Misalnya, bean mungkin berisi properti dari jenis khusus yang bean editor mungkin tidak mengerti bagaimana menangani. Dengan menggunakan interface PropertyEditor, seorang pengembang bean dapat menyediakan seorang editor untuk jenis khusus. Untuk meminimalkan sumber daya yang digunakan oleh beans, class digunakan oleh bean editor dimuat hanya bila bean sedang diedit. Apabila bean sedang dalam aplikasi yang berjalan maka ia tidak digunakan dan karena itu tidak dimuat. Informasi ini disimpan dalam bean-info. Kecuali dinyatakan secara eksplisit, nilai null atau String kosong tanpa parameter berlaku untuk metode dalam package ini.
  1. Package java.io
Menyediakan untuk sistem input dan output melalui data stream, serialisasi dan sistem file. Kecuali dinyatakan lain, melewati sebuah argumen null ke konstruktor atau metode dalam setiap kelas atau interface dalam package ini akan menyebabkan NullPointerException yang akan dibuang.
  1. Package java.lang
Menyediakan class untuk dasar design bahasa pemrograman java. Hal yang terpenting dalam class ini yaitu object, yang merupakan akar dari class tersebut. Type objek yang digunakan yaitu Boolean, Karakter, Integer, Long, Float, dan Double. Sebuah tipe objek Double, misalnya, berisi bidang yang bertipe ganda, mewakili nilai sedemikian rupa sehingga dapat disimpan dalam sebuah variabel bertipe referensi. Class ini juga memberikan beberapa metode untuk mengkonversi nilai primitif, serta mendukung metode standar seperti hashCode. Class math menyediakan fungsi matematika yang umum digunakan seperti sinus, kosinus, dan akar kuadrat. Class String dan StringBuffer juga menyediakan fungsi umum yang digunakan pada operasi string karakter. ClassLoader, Proses, Runtime, SecurityManager, dan Sistem menyediakan “sistem operasi” yang mengelola pembebanan class yang dinamis, penciptaan proses-proses eksternal, pertanyaan lingkungan host seperti waktu, dan penegakan kebijakan keamanan.

  1. Package java.math
Menyediakan class untuk melakukan operasi aritmatika integer (BigInteger) dan aritmatika desimal (BigDecimal). BigInteger merupakan integer asing pada Java maka operasinya pada BigIntegers tidak overflow. Selain operasi aritmatika standar, BigInteger menyediakan fungsi modular arithmetic, GCD calculation, primality testing, prime generation, bit manipulation, dan miscellaneous operations juga beberapa operasi lain-lain. BigDecimal menyediakan bilangan desimal cocok untuk perhitungan mata uang dan sejenisnya. BigDecimal memberikan pengguna kontrol penuh atas perilaku pembulatan, yang memungkinkan user untuk memilih dari delapan set mode pembulatan.
  1. Package java.net
Menyediakan class untuk implementasi aplikasi network. Package java,net dapat dibagi dalam 2 bagian yaitu :
  1. A Low Level API, yang berkaitan dengan masalah berikut :
  • Addresses, yaitu pengidentifikasian jaringan, seperti IP Address.
  • Sockets, yang merupakan dasar mekanisme data dua arah.
  • Interfaces, menggambarkan interface dari jaringan tersebut.
  1. A High Level API, yang berkaitan dengan masalah berikut :
  • URIs, merupakan URI, yang mewakili Universal Resource Identifier.
  • URLs, yang mewakili Universal Resource Locators.
  • Connections, yang merupakan koneksi ke sumber daya yang ditunjukkan oleh URL.
  1. Package java.security
Menyediakan class dan interface untuk keamanan. Hal ini termasuk kelas yang mudah dikonfigurasi akses arsitektur kontrol keamanannya. Package ini juga mendukung generasi dan penyimpanan pasangan kriptografi kunci publik, serta sejumlah operasi kriptografi ekspor termasuk untuk mencerna pesan dan signatures. Akhirnya, package ini menyediakan kelas yang mendukung objek dengan nomor acak. Banyak kelas yang disediakan dalam package ini (kelas kriptografi dan aman nomor acak generator khususnya) adalah penyedia berbasis. Class ini sendiri akan mendefinisikan interface pemrograman aplikasi yang dapat ditulis. Implementasinya sendiri kemudian dapat ditulis oleh pihak ketiga yang independen dan diterapkan sesuai kebutuhan. Oleh karena itu pengembang aplikasi dapat mengambil keuntungan dari setiap jumlah penyedia implementasi berbasis tanpa harus menambah atau menulis ulang kode.
  1. Package java.sql
Menyediakan API untuk mengakses dan memproses data yang disimpan dalam master data yang digunakan dalam bahasa pemrograman Java. API ini termasuk kerangka dimana driver yang berbeda dapat diinstal secara dinamis untuk mengakses berbagai sumber data. API JDBCTM diarahkan untuk melewati pernyataan SQL ke dalam database, yang ditetapkannya untuk membaca dan menulis data dari sumber data dengan format tabular. Pembaca / fasilitas penulis, tersedia melalui kelompok javax.sql.RowSet interface, dapat disesuaikan untuk menggunakan dan memperbarui data dari spreadsheet, file flat, atau tabel sumber data lain.
  1. Package java.text
Menyediakan class dan interface untuk menangani masalah text, tanggal, number, dan pesan dalam bahasa pemrograman yang alami. Class ini dapat digunakan untuk format tanggal, nomer, dan pesan, penguraian kalimat, pencarian, mengurutkan data string, iterasi karakter, kata, kalimat dan jeda baris. Package ini terdiri dari 3 group utama dari class dan interface :
  • Classes for iteration over text
  • Classes for formatting and parsing
  • Classes for string collaction
  1. Package java.util
Terdiri dari berbagai macam framework, class – class turunan, fasilitas waktu dan tanggal, internasionalisasi dan banyak utility classes yang lain.
  1. Package java.rmi
Menyediakan RMI Package. RMI adalah Remote Metode Invocation. Sebuah tools yang dapat digunakan untuk membuat virtual mesin pada java. Setiap objek dipanggil dengan cara mengimplementasikan interface Remote. Ketika sebuah objek dipanggil yang disebut “marshalled”, maka objek akan dikirim ke local virtual mesin, yang disebut “unmarchalled”. Ketika telah berakhir hasil dari marshaled pada virtual mesin akan dikirim ke virtual mesin pemanggil.
C Membuat Package
  1. Membuat direktori yang mempresentasikan tempat package yang akan dibuat. Misalnya : D:\Lecture\PBO 2007\Minggu 11\Program\MyPackage\Poligon
  2. Membuat  class (atau interface) yang akan menjadi isi package yang akan dibuat dengan susunan :
// Deklarasi package
Package namepackage;
// Deklarasi class
Public class namakelas {

}
  1. Deklarasi Package
Menggunakan kata kunci package yang ditulis dibaris pertama pada file sumber (.java).
Package namepackage;
Contoh :
  • Package MyPackage;
  • Package MyPackage.Poligon;
Hanya boleh ada satu pernyataan package pada file sumber.
  1. Deklarasi Class
Dinyatakan secara public supaya dapat diakses oleh semua kelas yang berada didalam dan diluar package yang dibuat. Jika ada beberapa class dari file sumber, hanya boleh ada satu class yang dinyatakan secara public yaitu class yang namanya sama dengan file sumber.
  1. Atur variable lingkungan CLASSPATH sehingga menunjuk pada directory tempat dimana package disimpan :
  • Melalui Control Panel.
  • Melalui perintah set path di command line.
SET CLASSPATH = .; D:\Lecture\PBO 2007\Minggu 11\Program;
  • Kompilasi class (atau interface) yang menjadi isi package.
  1. Menggunakan package class yang telah di kompilasi melalui :
Pernyataan import
Import MyPackage.Poligon.*;
Import MyPackage.Poligon.Segiempat;
Nama qualified dari kelas (atau interface)
MyPackage.Poligon.SegiEmpat S;
S = new MyPackage.Poligon.SegiEmpat(17, 8);

SWING java

Swing adalah bagian utama Java GUI widget toolkit.Swing adalah bagian dari Oracle's Java Foundation Classes (JFC)-API untuk menyediakan  graphical user interface (GUI) untuk program Java. Swing dikembangkan untuk menyediakan satu set yang lebih canggih dari komponen GUI dari Abstract Window Toolkit (AWT). Swing memberikan tampilan asli dan merasa bahwa mengemulasi tampilan dan nuansa dari beberapa platform, dan juga mendukung tampilan yang pluggable dan nuansa yang memungkinkan aplikasi untuk melihat dan merasa tidak berhubungan dengan platform yang mendasari. Swing lebih kuat dan fleksibel daripada komponen AWT. Selain komponen akrab seperti tombol, kotak centang dan label, Swing menyediakan komponen canggih seperti beberapa tab panel, panel gulir, pohon, tabel dan daftar. Tidak seperti komponen AWT, Swing komponen tidak diimplementasikan dengan platform kode khusus. Sebaliknya mereka ditulis seluruhnya di Jawa dan karena itu adalah platform-independen. Istilah "ringan" digunakan untuk menggambarkan elemen seperti itu.
 contoh :

import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.SwingUtilities;
 
public class SwingExample implements Runnable {
    @Override
    public void run() {
        // Create the window
        JFrame f = new JFrame ("Hello, World!");
        // Sets the behaviour for when the window is closed
        f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        // add a label and a button
        f.getContentPane().add(new JLabel("Hello, world!"));
        f.getContentPane().add(new JButton("Press me!"));
        // arrange the components inside the window
        f.pack();
        //By default, the window is not visible. Make it visible.
        f.setVisible(true);
    }
 
    public static void main(String[] args) {
        SwingExample se = new SwingExample();
        // Schedules the application to be run at the correct time in the event queue.
        SwingUtilities.invokeLater(se);
    }
}

I/O STREAM

Program komputer bisa berguna jika ia bisa berinteraksi dengan dunia lain. Interaksi di sini maksudnya input/output atau I/O. Pada bab ini, kita akan melihat input output pada file dan koneksi jaringan (network). Pada Java, input/output pada file dan jaringan dilakukan berdasarkan aliran (stream), di mana semua objek dapat melakukan perintah I/O yang sama. Standar output (System.out) dan standar input (System.in) adalah contoh aliran.
Setiap objek yang mengeluarkan data ke aliran byte masuk sebagai kelas turunan dari kelas abstrak OutputStream. Objek yang membaca data dari aliran byte diturunkan dari kelas abstrak InputStream.
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
 
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.

AWT dan SWING . apa sih bedanya ?

Dalam membangun objek GUI di Java, Kita bisa menggunakan AWT atau Swing, perbedaan keduanya adalah, bahwa AWT adalah tampilan dasar dari setiap target platform (Windows, Macintosh, Solaris) atau berdiri sesuai dengan mekanisme sebuah platform, seperti slogan Java (Write once run everywhere), hal tersebut bagus untuk sebuah program yang simpel, tetapi menjadi sulit ketika mengimplementasikan sebuah program yang lebih kompleks dan harus sesuai dengan target platform. Setiap User Interface elemen seperti Button, TextField, ScrollBar memiliki tingkah laku (behavior) yang berbeda di setiap platform. Yang lebih parah lagi, AWT User Interface Library memiliki bug yang berbeda di setiap platform, hal ini mengubah slogan Java menjadi (Write once, Debug everywhere).
Maka hadirlah Swing yang menawarkan tampilan yang lebih kaya dan bagus. Swing tidak berdasarkan platform yang dituju tetapi menggunakan metode “Painted” yaitu, setiap User Interface Elemen di Gambar ke dalam window/frame kosong. Sehingga setiap User Interface Elemen akan tampil dan berprilaku sama di setiap platform.
Swing bukan pengganti dari AWT, dan tidak bisa berdiri sendiri, karena setiap program butuh berkomunikasi dengan mekanisme dasar dari target platform seperti Event Handling yang ada di AWT, jadi Swing akan selalu berdampingan dengan AWT.
Sayangnya Swing lebih lambat tampil di layar. Dan ketika User Interface tampak sama di setiap platform, maka juga akan tampak berbeda untuk tampilan standar sebuah platform. Dan Java mengatasinya dengan baik sekali, yaitu Swing menyediakan theme specific (Windows theme, Motif Theme, Ocean Theme), yang bisa disesuaikan dengan platform.

SWING dan AWT (Java)

Di dalam java terdapat dua paket yang dapat kita gunakan untuk pengembangan program-program GUI. GUI adalah graphical user interface, dalam dunia nyata sebagian programnya berbentuk visual bukan console.
Dua paket GUI tersebut adalah SWING dan AWT. AWT(Abstract Window Toolkit) merupakan sekulmpulan library yang tidak tergantung pada platfrom serta digunakan untuk menyederhanakan implementasi user-interface, sedangkan Swing merupakan salah satu cara untuk menginplementasikan pemrograman window pada java,
beda swing dengan awt adalah, bentuk komponen komponen dari kelas swing sama bentuknya pada semua sistem operasi.

berikut contoh program pada membuat objek button di-click dengan menggunakan event-handling(awt dan swing)



import java.awt.*;
import java.awt.event.*;
import javax.swing.*;

class MySwingApplication extends JFrame
implements ActionListener {

public JLabel label;
public JButton button;

private int numClicks = 0;

public MySwingApplication(String title) {
super(title);
setBounds(0, 0, 300, 170);
getContentPane().setLayout(null);
setResizable(false);
setDefaultCloseOperation(EXIT_ON_CLOSE);

label = new JLabel("Jumlah klik yang dilakukan: 0");
label.setLocation(60, 40);
label.setSize(label.getPreferredSize());

button = new JButton("Klik aku!!");
button.setLocation(60, 80);
button.setSize(label.getPreferredSize());
button.addActionListener(this);

getContentPane().add(label);
getContentPane().add(button);

setVisible(true);
}

public void actionPerformed(ActionEvent event) {
if (event.getSource() == button) {
label.setText("Jumlah klik yang dilakukan: " +
(++numClicks));
}
}

public static void main(String[] args) {
MySwingApplication app =
new MySwingApplication("Contoh Event-Handling");
}
}

Bila pada saat kita click sebanyak n kali makan label pada hasilnya akan mencetak sebanyak n kali,,


Button (Tombol) Pada Java [Fungsi, Pengertian, Cara kerja]

Kelas Button melambangkan suatu tombol yang jika ditekan atau dilepaskan akan melepaskan event tertentu.
Kelas Button memiliki beberapa bit gaya :


Bit gayaTampilan (pada Linux)Keterangan
SWT.ARROW Hanya salah satu dari gaya ini yang boleh digunakan
SWT.CHECK 
SWT.PUSH 
SWT.RADIO 
SWT.TOGGLE 
SWT.FLAT Menampilkan tombol dengan tampilan "rata", bukan seperti tombol biasa yang memiliki tampilan 3D seperti tombol tekan. (Hanya untuk beberapa platform tertentu saja)
SWT.LEFTHanya salah satu dari gaya ini yang boleh digunakan
SWT.RIGHT
SWT.CENTER
SWT.UPHanya boleh digunakan bersama dengan SWT.ARROW
SWT.DOWN
SWT.LEFT
SWT.RIGHT
Suatu tombol bisa diisi teks atau gambar, tapi tidak keduanya secara bersamaan. Teks yang diisi pada suatu tombol tidak dapat berisi baris baru '\n' atau '\r'. Berikut ini adalah beberapa metode yang digunakan untuk mengeset dan mengambil teks dan gambar pada tombol.

MetodePenjelasan
setText(String teks)Mengeset teks pada tombol
getText()Mengembalikan String yang merupakan teks pada tombol
setImage(Image image)Mengeset gambar pada tombol
getImage()Mengembalikan Image yang merupakan gambar pada tombol
Berikut ini adalah contoh mengeset teks dan gambar pada suatu tombol :
Button tombolTeks = new Button(shell, SWT.PUSH);
tombolTeks.setText("Tombolku");
 
ImageData dataGambar = new ImageData("c:\\grafik.bmp");
Image gambar = new Image(display, dataGambar);
Button tombolGambar = new Button(shell, SWT.PUSH);
tombolGambar.setImage(gambar);
Kita juga bisa mengatur kerapatan (alignment) suatu teks atau gambar. Selain menggunakan bit gaya SWT.LEFT, SWT.RIGHT, atau SWT.CENTER pada konstruktor. Atau kita juga bisa menggunakan metode instansi pada kelas tombol berikut :
MetodePenjelasan
setAlignment(int rapatan)Mengeset kerapatan suatu teks atau gambar, rapatan hanya bisa berisi SWT.LEFT, SWT.RIGHT, atau SWT.CENTER
getAlignment()Mengambil int yang merupakan rapatan suatu teks atau gambar pada tombol.
Misalnya,
Button tombolTeks = new Button(shell, SWT.PUSH);
tombolTeks.setText("Tombolku");
tombolTeks.setAlignment(SWT.LEFT);
Tombol SWT.PUSH
Tombol ini memiliki sifat tombol biasa, yaitu ketika di klik tombol akan tampil seperti ditekan, dan ketika dilepas maka tombol akan kembali seperti biasa. Tombol ini memiliki event berikut :
Kelas Event (event bertipe)Interface/Kelas Listener (listener bertipe)Metode (listener bertipe)Jenis event (event tanpa tipe)Penjelasan
SelectionEventSelectionListener (dan SelectionAdapter)widgetDefaultSelected(SelectionEvent)SWT.DefaultSelectionSuatu aksi pemilihan dilakukan pada pilihan default (misalnya ketika tombol Enter ditekan)
widgetSelected(SelectionEvent)SWT.SelectionSuatu aksi pemilihan dilakukan dalam widget (misalnya memilih item pada drop down list
Misalnya untuk menambahkan listener untuk event yang terjadi ketika tombol ditekan, kita bisa menggunakan SWT.Selection, misalnya pada contoh berikut :
Button tombolTeks = new Button(shell, SWT.PUSH);
        tombolTeks.setText("Tombolku");
        tombolTeks.addSelectionListener(new SelectionAdapter() {
         public void widgetSelected(SelectionEvent e) {
          // Perintah-perintah lainnya
         }
        });
Tombol SWT.ARROW
Tombol ini secara perilaku mirip dengan SWT.PUSH, akan tetapi perbedaannya tombol ini tidak bisa diisi teks atau gambar. Tombol ini akan menggambar tanda panah, yang arahnya tergantung dari bit gaya yang diberikan, bisa ke kiri, kanan, atas atau bawah.
Tombol SWT.TOGGLE
Berbeda dengan tombol SWT.PUSH, tombol ini ketika diklik akan berada dalam posisi tertekan terus walaupun mouse sudah dilepaskan. Untuk mengembalikannya, tombol ini harus diklik kembali. Karena tombol ini bisa memiliki dua keadaan, yaitu keadaan tertekan dan keadaan terlepas, ada dua metode yang kita bisa gunakan untuk mengeset keadaan tombol atau untuk mengambil keadaan tombol saat itu, yaitu
MetodePenjelasan
setSelection(boolean pilih)Mengeset keadaan suatu tombol. Jika pilih bernilai true, maka tombol berada dalam keadaan tertekan.</td></tr><tr><td>getSelection()</td><td>Mengembalikan [code]boolean yang berisi keadaan suatu tombol apakah dalam keadaan tertekan atau terlepas
Tombol SWT.CHECK
Tombol SWT.CHECK tidak berbentuk seperti tombol, akan tetapi perilakunya mirip dengan SWT.TOGGLE. Secara tampilan, SWT.CHECK ditampilkan seperti tombol kotak tik, yang apabila diklik kotak tik akan tercontreng. Untuk menghilangkan contrengan, klik kembali kotak cek tersebut.
Karenanya, mirip seperti SWT.TOGGLE, tombol ini memiliki dua keadaan tetap, yaitu kondisi tercontreng dan tidak tercontreng. Untuk mengeset keadaan ini, gunakan metode yang sama dengan SWT.TOGGLE, yaitu setSelection() dan getSelection().
Tombol SWT.RADIO
Tombol ini mirip seperti SWT.CHECK, di mana apabila kita mengklik tombol radio, maka tombol tersebut berada dalam keadaan terpilih. Perbedaannya, jika beberapa tombol SWT.RADIO berada dalam satu induk, maka hanya satu tombol radio saja yang bisa aktif. Artinya jika kita mengklik tombol radio kedua, maka tombol ini akan terpilih dan yang lainnya akan mati. Untuk mengesetnya, gunakan metode yang sama seperti pada SWT.CHECK dan SWT.TOGGLE.
Biasanya, hanya satu tombol radio pada suatu kotak dialog atau jendela tidak masuk akal. Karena hanya ada tombol radio yang bisa aktif, maka satu tombol radio ini akan selalu aktif, sehingga percuma untuk diletakkan dalam GUI. Jika ada dua tombol radio, perilakunya persis sama dengan satu tombol SWT.CHECK (jika satu aktif, maka yang lainnya pasti tidak aktif). Untuk itu tombol radio biasanya digunakan untuk meminta user memilih satu dari sekian banyak pilihan.
Berikut ini adalah contoh program yang bisa Anda unduh di sini. Program ini akan menggambar beberapa jenis tombol. Jika salah satu tombol ditekan, maka warna latar belakang jendela akan berubah-ubah. Warna-warna ini disimpan dalam palette warna dalam bentuk array. Jika warna terakhir sudah ditampilkan, kemudian tombol ditekan kembali, maka warna pertama akan ditampilkan kembali.
package com.lyracc.tombolwarna;
 
import org.eclipse.swt.*;
import org.eclipse.swt.graphics.*;
import org.eclipse.swt.layout.*;
import org.eclipse.swt.widgets.*;
import org.eclipse.swt.events.*;
 
public class TombolWarna {
 
 // Variabel-variabel widget kita deklarasikan sebagai
 // variabel privat
 private Display display;
 private Shell shell;
 private Color[] warna;
 private int warnaSekarang = 0;
 final int JUMLAHWARNA = 10;
 
 // Konstruktor kelas ini, untuk menginisialisasi semua widget
 TombolWarna() {
  // Membuat display dan shell baru
  display = new Display();
  shell = new Shell(display);
  shell.setLayout(new RowLayout());
 
  // Ubah ukuran jendela menjadi 200 x 200 piksel
  shell.setSize(250, 200);
 
  // Inisialisasi tombol-tombol
  Button tombol = new Button(shell,SWT.PUSH);
  tombol.setText("Tombolku SWT.PUSH");
 
  Button tombol1 = new Button(shell,SWT.ARROW | SWT.LEFT);
 
  Button tombol2 = new Button(shell,SWT.TOGGLE);
  tombol2.setText("Tombolku SWT.TOGGLE");
 
  Button tombol3 = new Button(shell,SWT.CHECK);
  tombol3.setText("Tombolku SWT.CHECK");
 
  Button tombol4 = new Button(shell,SWT.RADIO);
  tombol4.setText("Tombolku SWT.RADIO");
 
  // Mengeset event
  ListenerTombolWarna listenerTombolWarna = new ListenerTombolWarna();
  tombol.addSelectionListener(listenerTombolWarna);
  tombol1.addSelectionListener(listenerTombolWarna);
  tombol2.addSelectionListener(listenerTombolWarna);
  tombol3.addSelectionListener(listenerTombolWarna);
  tombol4.addSelectionListener(listenerTombolWarna);
 
  // Mengeset warna-warna
  warna = new Color[JUMLAHWARNA];
  warna[0] = display.getSystemColor(SWT.COLOR_BLACK);
  warna[1] = display.getSystemColor(SWT.COLOR_BLUE);
  warna[2] = display.getSystemColor(SWT.COLOR_CYAN);
  warna[3] = display.getSystemColor(SWT.COLOR_GRAY);
  warna[4] = display.getSystemColor(SWT.COLOR_GREEN);
  warna[5] = display.getSystemColor(SWT.COLOR_MAGENTA);
  warna[6] = display.getSystemColor(SWT.COLOR_RED);
  warna[7] = display.getSystemColor(SWT.COLOR_WHITE);
  warna[8] = display.getSystemColor(SWT.COLOR_YELLOW);
  warna[9] = display.getSystemColor(SWT.COLOR_WIDGET_BACKGROUND);
 }
 
 // Kelas listener ketika tombol ditekan
 class ListenerTombolWarna extends SelectionAdapter {
  public void widgetSelected(SelectionEvent e) {
   // Jika warna lebih sudah di akhir array
   // kembali ke warna 0
   if (warnaSekarang == warna.length)
    warnaSekarang = 0;
   shell.setBackground(warna[warnaSekarang++]);
  }  
 }
 
 // Perintah "standar" SWT, harus ada pada setiap aplikasi SWT
 public void run() {
  shell.open();
  while (!shell.isDisposed())
   if (!display.readAndDispatch()) 
    display.sleep();
  display.dispose();
 }
 
 /**
  * @param args
  */
 public static void main(String[] args) {
  // Instansiasi kelas ini, kemudian jalankan run
  TombolWarna tombolWarna = new TombolWarna();
  tombolWarna.run();
 }
}

Pengikut

http://www.komodonet.net/. Powered by Blogger.