Friday Dec 28, 2007

Tutorial Swing Application Framework Bagian I (Kelas Application)

Tutorial bagian I ini akan membahas salah satu kelas penting dalam Swing Application Framework yaitu kelas org.jdesktop.application.Application. Kelas ini bertugas mengatur jalannya aplikasi dari mulai launch sampai exit.

Tujuan akhir tutorial ini adalah membahas cara kerja dan alur dari kelas Application 

Software yang dibutuhkan oleh tutorial ini

  1. NetBeans IDE 6.0 Java SE (download)
  2. Java Standar Development Kit (JDK) versi 5.0 atau 6.0 (download)

 

Membuat Project

Sub bagian ini bertujuan untuk membuat project di NetBeans yang menyertakan library Swing Application Framework.

  1. Buka NetBeans IDE 6.0
  2. Pilih File > New Project. Di bagian Categories, pilih Java. Di bagian Project, pilih Java Application dan klik Next.
  3. Di bagian Project Name isi dengan ApplicationTest. Un-Check bagian bagian Create Main Class dan Klik Finish.
  4. Klik kanan bagian Library pada Project Tree, pilih Add Library.
  5.  

  6. Pilih Swing Application Framework dan kllik Add Library
  7. Project telah selesai dibuat

Menggunakan Kelas Application

Sub bagian ini bertujuan untuk membuat aplikasi sederhana dengan menggunakan kelas org.jdesktop.application.Application.

  1. Pilih File > New File. Di Bagian Categories, pilih Java. Di bagian File Types, pilih Java Class dan klik Next.
  2. Di bagian Class Name isi dengan ApplicationTestClass. Di bagian package isi dengan org.tutorial dan klik Finish.
  3. Buka kelas org.tutorial.ApplicationTestClass. Kemudian tambahkan kode extends Application setelah nama kelas sehingga kode pada kelas ApplicationTestClass akan menjadi seperti ini.
  4.  

  5. Tanda bola lampu dan garis bawah berwarna merah menunjukkan ada syntaks error atau kesalahan penulisan pada kode, penyebab kesalahan dapat dilihat dengan mengarahkan mouse ke atas tanda bola lampu kemudian akan muncul text keterangan tentang error. Arahkan mouse keatas tanda bola lampu, maka akan muncul keterangan "cannot find symbol, symbol : Application". Ini berarti NetBeans tidak mengenali kelas Application yang telah ditambahkan.
  6. Klik tanda bola lampu, pilih Add import for org.jdesktop.application.Application.  Akan muncul kode baru diatas public class Appl.. yaitu berupa kode import org.jdesktop.application.Application. Masalah pertama telah selesai diatasi.
  7. Tanda bola lampu dan garis bawah merah masih akan muncul. Hal ini bukan disebabkan oleh masalah pertama tetapi ada syntaks error yang lain. Arahkan mouse keatas tanda bola lampu sekali lagi. Baca kemudian klik tanda bola lampu pilih "Implement all abstract methode". Ini disebabkan karena semua kelas turunan dari kelas Application harus  meng-overide methode abstract dari super kelasnya.
  8. Tambahkan kode-kode lain sehingga secara keseluruhan kelas ApplicationTestClass akan menjadi seperti dibawah ini :
  9.  package org.tutorial;

    import org.jdesktop.application.Application;

    public class ApplicationTestClass extends Application {

        @Override
        protected void startup() {
            System.out.println("startup terpanggil");
        }

        @Override
        protected void initialize(String[] args) {
            System.out.println("initialize terpanggil dengan " +
                    "argumen sebanyak " + args.length);
        }

        @Override
        protected void shutdown() {
            System.out.println("shutdown terpanggil");
        }

        @Override
        protected void ready() {
            System.out.println("ready terpanggil");
        }

        public static void main(String[] args) {
            try {
                launch(ApplicationTestClass.class, args);
                Thread.sleep(500);
                ApplicationTestClass.getInstance().exit();
            } catch (InterruptedException ex) {
                System.out.println(ex.getMessage());
            }
        }
    }

  10. Pilih Build > Build Main Project, tunggu beberapa saat sampai proses kompilasi selesai. Jika tidak ada error pilih Run > Run Main Project maka akan muncul output seperti ini
  11.  

Penjelasan Program

  • Methode yang harus di overide dari kelas Application adalah  methode startup(), sedangkan method initialize(), ready() dan shutdown() bersifat optional.
  • Siklus hidup kelas Application dimulai ketika  methode launch() di panggil dan berakhir ketika methode exit() dipanggil.
  •     public static void main(String[] args) {
            try {
                launch(ApplicationTestClass.class, args);
                Thread.sleep(500);
                ApplicationTestClass.getInstance().exit();
            } catch (InterruptedException ex) {
                System.out.println(ex.getMessage());
            }
        }

  • Ketika methode launch() di panggil maka methode-methode seperti initialize(), startup(), ready() dan shutdown()akan berturut-turut dijalankan. Ini bisa dibuktikan dari hasil output dari program diatas.
  • Methode initialize() dijalankan pertama kali sejak siklus hidup kelas Application dimulai. Methode ini mempunyai parameter berupa String[] args, tidak lain parameter ini adalah penampung dari argument ketika program dijalankan contoh ketika kita menjalankan program java -jar ApplicationTest.jar argumen1 argument2. Program diatas dijalankan dengan konfigurasi defaults yaitu tanpa menyertakan argument, oleh karenanya methode initialize() menghasilkan text "initialize terpanggil dengan argument sebanyak 0".
  • Methode startup() dipanggil setelah initialize() selesai dijalankan. Methode ini adalah methode yang harus di-overide oleh semua kelas turuan dari kelas Application.
  • Methode ready() dipanggil setelah startup() selesai dijalankan dan tidak ada lagi event yang sedang berlangsung.
  • Methode shutdown() akan dijalankan apabila methode exit() pada kelas Application dipanggil. Apabila program berakhir tanpa adanya pemanggilan methode exit maka methode shutdown() tidak akan dijalankan.

Comments:

Bagus sekali.

Saya belum pernah mencoba Swing Framework. Mungkin nanti saya akan coba.

itu bs mendukunga berbagai macam arsitektur tidak, misalnya Form based, MDI atau SDI???

Nuhu, salam kenal dari saya, Eko SW

http://swdevsoftwareconsulting.blogspot.com/

Posted by Eko SW on January 06, 2008 at 07:09 AM WIT #

mas blh mnta tutorialnya ga tntng java swing...
aq pngn bljr java nih..
klu bs krm ndek e-mail ja yah. trim's

Posted by chandra on April 11, 2009 at 10:15 AM WIT #

good job

Posted by nightstalker on July 30, 2010 at 01:14 PM WIT #

Post a Comment:
  • HTML Syntax: Allowed