Saturday, November 27, 2010

Menambahkan Timer Dalam Sage

Mari kita lanjutkan menambahkan fungsi Timer dalam aplikasi Sage yang telah kita bangun.

Sekarang saatnya yang paling menyenangkan karena kita akan menambahkan fungsi perubahan secara otomatis setiap beberapa detik.

Langkah 1. Menggunakan Options Untuk Menyimpan Setting Timer

Setting untuk perubahan quote disimpan ke dalam NetBeans Platform dalam Options Panel yang sudah built-in di platform ini.

Caranya:
Right-click dalam package: com.ongbudi.sage.quote
Pilih New -> Options Panel



Setelah diclick maka diisi dengan:
Title: Sage Options
Tool Tip: Configuration Setting for Sage Application
Key Words: Sage Options
Click Next.



Setelah itu click Finish



Untuk melihat tampilan Sage Options, ada di dalam menu Tools -> Options dalam aplikasi Sage.



Setelah kita dapat menemukan option tersebut, mari kita rancang apa yang perlu diubah.

Kita buka SageOptionsPanel.java
Click Design, tambahkan Label dan TextField seperti contoh di bawah ini.
Nama variable TextField diubah menjadi jInterval



Nah, untuk menyimpan perubahan dilakukan melalui pengubahan method load() dan store()

Method load() menjadi:

void load() {

jInterval.setText(NbPreferences.forModule(SageOptionsPanel.class).get("jInterval","15"));

}


Method store() menjadi:
void store() {

NbPreferences.forModule(SageOptionsPanel.class).put("jInterval", jInterval.getText());
}

Tambahkan import:
import org.openide.util.NbPreferences;

Sekarang sudah dapat menyimpan berapa detik interval untuk setiap perubahan quote.

Langkah 2. Mengambil Nilai Interval Dalam Options Panel

Untuk mengambil nilai Interval yang tersimpan dalam options panel dilakukan sebagai berikut:

Tambahkan baris ini ke dalam method componentOpened() dalam ShowQuoteTopComponent.java

//Setting Timer
Preferences pref;
pref = NbPreferences.forModule(SageOptionsPanel.class);
int Interval = 0;
Interval = toInt(pref.get("jInterval", ""));
Interval = Interval * 1000;

Tambahkan juga fungsi toInt() seperti di bawah ini:

private int toInt(String number) {
Integer temp;
temp = new Integer(number);
return temp.intValue();
}

Tambahkan import:
import java.util.prefs.Preferences;
import org.openide.util.NbPreferences;


Langkah 3. Menambah Fungsi Timer dalam Show Quote

Bagaimana caranya menambahkan fungsi timer untuk menampilkan Quote? Mari kita sama-sama membuatnya.

Karena kita sudah memiliki nilai dari Interval dari langkah ke 2, maka kita langsung dapat menggunakannya dalam menentukan Interval.

Selanjutnya dibuat inner class untuk mengerjakan tugas rutin setiap Interval waktu.

class Ticker extends TimerTask {
public void run() {
java.awt.event.MouseEvent evt = null;
QuoteTextMouseClicked(evt);
}
}
Kalau diperhatikan fungsi di atas, kita hanya memanggil mouse click event yang pernah dibuat sebelumnya.

Kemudian ditambahkan fungsi untuk menjalankan Ticker ini setiap Interval waktu, caranya dengan menambahkan baris ini dibaris terakhir dari method componentOpened()

if (daemon == null) {
daemon = new Timer(true);
}
TimerTask runnable = new Ticker();
daemon.scheduleAtFixedRate(runnable, 0, Interval);
}
Selesai sudah aplikasi kita. Quote akan berganti-ganti setiap Interval waktu yang ditetapkan.



Oke, sampai di sini dulu.
Sampai jumpa dalam aplikasi berikutnya yang akan sama-sama kita buat.

Salam Java,
Ong Budi Setiawan

Wednesday, November 24, 2010

Menambahkan Fungsi Aplikasi "Sage"

Mari kita lanjutkan menambahkan fungsi-fungsi dalam aplikasi Sage yang telah kita bangun kerangka-nya.

Langkah 1. Menambahkan Library Db4o 5.2

Right-Click Libraries dari Module Qoute.
Pilih Add New Library.



Click Browse, dan pilih: db4o-5.2-java5.jar.
Click Next.



Project Name diisi dengan: Object Database
Click Next.



Code Name Base diisi dengan: com.ongbudi.sage.odb.
Click Finish.




Langkah 2. Menambah Fungsi Add Quote

Click Quote Module.
Cilck Source Packages
Click com.ongbudi.sage.quote
Double-Click AddQuoteTopComponent.java



Tambahkan Label dan Text Field ke dalam tampilan:



Untuk menampung data dibuat class: Quote.java
Dalam Source Packages: com.ongbudi.sage.PDM

package com.ongbudi.sage.PDM;

public class Quote {

private String Quote;
private String Author;

public Quote(String q, String a) {
this.Quote = q;
this.Author = a;
}

public String getQuote() {
return this.Quote;
}

public String getAuthor() {
return this.Author;
}

public void setQuote(String q) {
this.Quote = q;
}

public void setAuthor(String a) {
this.Author = a;
}


Tambahkan beberapa import di Source Code AddQuoteTopComponent.java :
import com.db4o.Db4o;
import com.db4o.ObjectContainer;
import com.db4o.reflect.jdk.JdkReflector;
import com.ongbudi.sage.PDM.Quote;



Fungsi yang dijalankan oleh tombol New yaitu:

Quote.setText(null);
Author.setText(null);

Fungsi yang dijalankan oleh Tombol Save yaitu:

Db4o.configure().reflectWith(new JdkReflector(Thread.currentThread().getContextClassLoader()));
ObjectContainer db = Db4o.openFile("Sage.ODB");
try {
Quote quote = new Quote(Quote.getText(), Author.getText());
db.set(quote);

} finally {
db.close();
}
Quote.setText("");
Author.setText("");

Oke, sekarang database sudah bisa menyimpan quote yang dibuat.




Langkah 3. Menambah Fungsi Show Quote

Sekarang saatnya kita akan menampilkan Qoute yang sudah tersimpan.
Untuk itu kita buat terlebih dahulu tampilannya:

Double-Click: ShowQuoteTopComponent.java

Ubah tampilan menjadi seperti ini:




Dalam Source, tambahkan variable di bawah ini:
private int counter = 0;
public LinkedList listQuote = new LinkedList();
public ObjectContainer db;

Resolve semua import dengan mengikuti saran dari NetBeans IDE.

Untuk pertama kali kita buat fungsi untuk mengganti quote setiap dilakukan click di tampilan quote:

Right-Click dalam jScrollPane untuk QuoteText, pilih Event -> Mouse –> Mouse Clicked

Tambahkan kode ini:


// Ganti Quote Setiap Click
int i;
i = listQuote.size() - 1;
System.out.println(listQuote.size());

if (counter >= i) {
counter = 0;
} else {
counter++;
}
// tampilkan quote
Quote qt = (Quote) listQuote.get(counter);
System.out.println(listQuote.get(counter));
QuoteText.setText(qt.getQuote());
AuthorText.setText(qt.getAuthor());


Untuk mengisi Quote yang akan ditampilkan, dilakukan pengambilan data dari database melalui method componentOpened().

public void componentOpened() {
if (db == null) {
Db4o.configure().reflectWith(new JdkReflector(Thread.currentThread().getContextClassLoader()));
db = Db4o.openFile("Sage.ODB");
}

counter = 0;
try {
Quote quote = new Quote(null, null);
ObjectSet hasil = db.get(quote);
System.out.println("Isi Database: " + hasil.size());
while (hasil.hasNext()) {
Quote qt = (Quote) hasil.next();
listQuote.add(qt);
QuoteText.setText(qt.getQuote());
AuthorText.setText(qt.getAuthor());
counter++;
}
} catch (Exception e) {
} finally {
if (db != null) {
db.close();
}
}

//counter dikembalikan ke awal list
counter = 0;

Oke, sekarang sudah dapat dijalankan dengan melakukan click, maka quote akan berganti-ganti.

Tampilannya akan menjadi seperti ini:



Oke, sampai di sini dulu, nanti kita lanjutkan dengan tambahan fungsi yang lain.

Salam Java,
Ong Budi Setiawan

Saturday, November 20, 2010

Membangun Aplikasi “Sage” Dengan NetBeans Platform Dan Database Object Db4o

Pernah dengar aplikasi “Sage”, program ini menampilkan quote atau kata-kata bijak dari orang-orang terkenal. Aplikasi ini akan menampilkan quote yang disimpan di dalam database object Db4o dan kemudian ditampilkan ke layer. Dalam periode tertentu, kata-kata bijak ini akan diganti secara otomats.

NetBeans platform yang digunakan terdapat dalam Netbeans 6.5 dan Db4o yang digunakan adalah Db4o versi 5.2.

Mari kita bangun bersama-sama.

Langkah 1. Membuat kerangka menu utama Sage

Dari menu NetBeans:
File -> New Project.
Pilih: NetBeans Project
Pilih: NetBeans Platform Application



Click Next.
Ketik: Sage
Untuk nama project.



Click: Finish.
Hasilnya sudah dapat dijalankan dan tampilannya seperti ini:



Jika mau lihat hasilnya, saya sertakan zip file dari langkah satu ini:


Langkah 2. Membuat Module Quote.

Module Quote ini nanti akan berisi dua buah fungsi yaitu Add Quote untuk menampilkan quote dan Show Quote untuk menampilkan Quote.

Untuk menambah module:

Right Click: Module, pilih Add New…



Ketik Quote, sebagai nama module. Click Next



Untuk Code Name Base: com.ongbudi.sage.quote



Jika mau lihat hasilnya, saya sertakan zip file dari langkah ke-dua ini:




Langkah 3. Menambah Window Component Add Quote

Kita akan menambahkan menu untuk menambah Quote yaitu dengan Window Component: Add Quote.

Caranya:
Click: Source Package dalam Module Quote.

Right-Click, Source Package kemudian pilih New -> Window Component



Pilih Windows Position: leftSlidingSide,,
Click Next.



Untuk Class Name Prefik diisi: AddQuote. Click Next.



Jika mau lihat hasilnya, saya sertakan zip file dari langkah ke-tiga ini:


Langkah 4. Menambah Window Component Show Quote

Caranya:
Click Source Package dalam Module Quote.

Right-Click, Source Package kemudian pilih New -> Window Component.

Window Position diganti menjadi Editor.
Dan pilih Open on Application Start.



Class Name Prefik diisi: ShowQuote.
Click Finish.



Dari ke-empat langkah ini. Maka secara tampilan, aplikasi ini sudah selesai dikerjakan.

Kita akan lanjutkan untuk mengisi fungsi-fungsi yang dijalankan di tutorial selanjutnya.
Jika dijalankan, tampilan aplikasi seperti di bawah ini:



Hasil dari langkah ke-empat dapat diambil di zip file ini.



Sampai di sini dulu.

Salam Java,

Ong Budi Setiawan