Pengenalan Swing Framework dan Beans Binding di Netbeans IDE

Hallo pembaca setia sekalian.. pada kesempatan ini saya ingin menulis tentang Swing Framework dan Beans Binding dan tentunya bagaimana menggunakannya dengan IDE kesayangan saya Netbeans. Sebelum kita coba buat aplikasi sederhana dengan Swing Framework+Beans Binding mungkin pembaca perlu mengetahui apa itu Swing Framework dan Bean Binding.

Menurut yang saya baca dari websitenya hehehe.. Swing Framework adalah sekumpulan class yang dapat kita gunakan untuk mempermudah pengembangan aplikasi desktop berbasis swing. Dalam Swing Framework sudah disediakan class-class atau infrastruktur yang umumnya dibutuhkan oleh sebuah aplikasi desktop antara lain :

  • Application lifecyle, notably GUI startup and shutdown.
  • Support for managing and loading resources, like strings, formatted messages, images, colors, fonts, and other types common to desktop applications.
  • Support for defining, managing, and binding Actions, including Actions that run asynchronously (in the “background”).
  • Persistent session state: support for automatically and selectively saving GUI state from one run of an application to the next.

Biar lebih jelas silahkan kunjungi websitenya di https://appframework.dev.java.net/

Nah sedangkan Beans Binding adalah framework yang memudahkan kita untuk melakukan sinkronisasi antara 2 object. Yang paling umum adalah bagaimana mengsinkronisasi data pada database dengan yang ditampilkan pada user atau sinkronisasi antara komponen-komponen swing (table, textfield, combobox, checkbox, ….) Jadi jika terjadi perubahan data pada tampilan (GUI) maka otomatis data di database juga ikut berubah begitu juga sebaliknya. Untuk lebih jelasnya silahkan dibaca di https://beansbinding.dev.java.net/

Sudah cukup teorinya hehehe.. sekarang bagaimana kita coba buat aplikasinya🙂 Pada tulisan saya kali ini kasusnya adalah kita akan membuat aplikasi “Daftar Barang” dimana masing masing barang akan memiliki Kategori terntentu. Kalo digambarkan dalam UML kurang lebih seperti gambar berikut ini :

Saya menggunakan database MySQL tapi tentunya pembaca beleh menggunakan database yang lain yang penting sesuaikan JDBC connectornya. Pertama siapkan sebuah database dengan nama “products” dan selanjutnya ikuti langkah-langkah berikut ini:

Jalankan Netbeans (Saya menggunakan NB 6.1) kemudian buatlah sebuah project dengan nama “ProductRecord”

Pastikan jenis project yang terpilih adalah Java Destop Aplication kemudian Next. Pada layar wizard berikutnya pastikan Application Shell yang dipilih adalah Basic Application seperti gambar berikut ini, kemudian tekan tombol Finish

Netbeans secara otomatis akan membuatkan template project buat kita dan juga 3 buah Class yang akan kita gunakan.

Selanjutnya buatlah Pesistence Unit dengan klik kanan pada source package>New>Persistence Units.. Pilihlah database product yang baru kita buat sebagai Database Connectionnya kemudian Finish.

Selanjutnya buatlah 2 Entity Class yaitu Prouduct dan Category. Klik kanan pada Source Package>New>Entity Class. Beri package “model” untuk masing-masing Entity Class tersebut.


package model;

import java.beans.PropertyChangeSupport;
import java.io.Serializable;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.ManyToOne;
import javax.persistence.Transient;

/**
*
* @author hendro
*/
@Entity
public class Product implements Serializable {
@Transient
private PropertyChangeSupport changeSupport = new PropertyChangeSupport(this);
private static final long serialVersionUID = 1L;
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id;
@Column(name="name",length=100)
private String name;
@Column(name="description",length=200)
private String description;
private double price;
@ManyToOne
@JoinColumn(name = "category_id")
private Category category;

public Category getCategory() {
return category;
}

public void setCategory(Category category) {
this.category = category;
}

public String getDescription() {
return description;
}

public void setDescription(String description) {
this.description = description;
}

public String getName() {
return name;
}

public void setName(String name) {
this.name = name;
}

public double getPrice() {
return price;
}

public void setPrice(double price) {
this.price = price;
}

public Long getId() {
return id;
}

public void setId(Long id) {
this.id = id;
}
}

Sesuaikan kode program untuk class Product seperti kode program di atas.


package model;

import java.beans.PropertyChangeSupport;

import java.io.Serializable;

import javax.persistence.Column;

import javax.persistence.Entity;

import javax.persistence.GeneratedValue;

import javax.persistence.GenerationType;

import javax.persistence.Id;

import javax.persistence.Transient;

/**

*

* @author hendro

*/

@Entity

public class Category implements Serializable {

@Transient

private PropertyChangeSupport changeSupport = new PropertyChangeSupport(this);

private static final long serialVersionUID = 1L;

@Id

@GeneratedValue(strategy = GenerationType.IDENTITY)

private Long id;

@Column(name="name",length=100)

private String name;

@Column(name="description",length=200)

private String description;

public String getDescription() {

return description;

}

public void setDescription(String description) {

this.description = description;

}

public String getName() {

return name;

}

public void setName(String name) {

this.name = name;

}

public Long getId() {

return id;

}

public void setId(Long id) {

this.id = id;

}

}

Sesuaikan kode untuk class Category seperti kode program di atas. Jika anda bingung dengan kode-kode program di atas,  silahkan anda mempelajari tentang Java Persistence API (JPA).

Selanjutnya buatlah 2 Class DAO yaitu CategoryDAO dan ProductDAO. 2 Class ini yang bertanggung jawab untuk melakukan update ke database. Masing-masing class beri package “dao”

package dao;

import java.util.List;
import javax.persistence.EntityManager;
import model.Category;

/**
*
* @author hendro
*/
public class CategoryDAO {
private EntityManager em;
public CategoryDAO(){}

public CategoryDAO(EntityManager em) {
this.em = em;
}
public void save(Category cat) {
if (cat.getId() == null) {
em.persist(cat);
} else {
em.merge(cat);
}
}

public void delete(Category cat) {
em.remove(cat);
}

public Category getCategory(Long id) {
return em.find(Category.class, id);
}

public List getCategories() {
return em.createQuery("select p from Category p").getResultList();
}

}
package dao;

import java.util.List;
import javax.persistence.EntityManager;
import model.Product;

/**
*
* @author hendro
*/
public class ProductDAO {
private EntityManager em;
public ProductDAO(){}

public ProductDAO(EntityManager em) {
this.em = em;
}
public void save(Product prod) {
if (prod.getId() == null) {
em.persist(prod);
} else {
em.merge(prod);
}
}

public void delete(Product prod) {
em.remove(prod);
}

public Product getProduct(Long id) {
return em.find(Product.class, id);
}

public List
getProdudct() {
return em.createQuery("select p from Product p").getResultList();
}

}

upsss.. karena udah mo kuliah saya lanjutin besok ya ;)  sabar.. sabar..

11 Responses to Pengenalan Swing Framework dan Beans Binding di Netbeans IDE

  1. rosyada says:

    mantep makasih tutorialnya, saya juga newbie dan pengen belajar open JPA.
    saya tunggu release tulisannya

  2. silver X says:

    duh, mas hendro ne hebat bgt.. pengen jadinya mo nulis kayak gni😀 tapi sayang, masih belajar…. hehehehehe

  3. iaksz says:

    pak, nanya boleh kan ???
    – tapi jangan tersinggung ya pak ,,, –

    ehm, apa artikel diatas bener2 fully coded by Pak Hendro,

    ato pengembangan dari kode2 pemrogram Java yang lain ??

    saya cuman heran ajah, kok nggak ada referensi gitu .

    – maaf pak ya, nanya kok. nggak marah kan ?? –

  4. Hendro Steven says:

    hehehehe gak tersinggung kok😉
    udah pasti ada referensinya.. gak ada programmer di dunia ini yang buat aplikasi tanpa liat referensi (buku, tutorial, source code) orang lain. Betul gak?
    nah tapi tentu gak sama 100% kita jangan main caplok aja hihihi karena belum tentu punya orang lain itu walaupun dari buku teks atau bahkan dari programmer terkenal sekalipun sudah merupakan solusi yang terbaik buat kita. Nah sehubungan dengan itu aku buatin deh tutorial ini tentu dengan banyak modifikasi terutama bagaimana memanfaatkan netbeansnya untuk beans binding tanpa harus coding manual😀

  5. HackerMpia says:

    KOk kayak di buku aku yah ,agak2 mirip cuman lebih kerenan ini , buku saya Judulnya Esensi-Esensi bahasa Pemrograman Java.

  6. rizal says:

    makasih pak atas ilmunya.
    numpang tanya pak hendro
    bagaimana cara menambahkan paket netbenans mobility kedalam netbeans 6.5 ?

  7. vyor says:

    Saya setuju dengan Kak Hendro. Tidak selamanya apa yang ditulis oleh orang lain itu solusi buat kita. Kita jadikan referensi untuk memodifikasi coding kita sesuai dengan tujuan dan kebutuan aplikasi kita. Yah, asalkan jangan main “copy-paste” tanpa ada modif……. Java itu banyak yang masih bisa kita eksplor.

    Aku ingat kata-kata kak Hendro waktu itu ….

    “Masalah yang kita alami dalam pemrograman pasti orang lain sudah pernah mengalaminya lebih dulu.”

    Jadi ostosmastis kita butuh referensi dari orang lain.

    Happy coding …. 🙂

  8. Hendro Steven says:

    masuk ke menu tool>plugin tambahkan Mobility packnya (download online)

  9. nurelly says:

    Kalau kapan2 buat Tutorial Java Mp3 Aplication keren tuh mas bisa dengering musik hehehe…!!!

    Tapi ada referensi atau web mungkin saya suka tuh buat pemutar MP3 pakek java walaupun hanya sederhana sih…

    kalau ada yang lainnya minta dong tutornya biar tak download kalau ada sitenya, saya suka banget tuh buat2 aplikasi MP3 tapi pakek Visual Basic kalau java Piye Yoh…

  10. Dona Azhar M says:

    om, saya sudah mencoba membuat aplikasi dengan mencontoh pada cd/dvd yang di beli dari om, cuma yang jadi masalah data yang mau disimpan tidak dapat disimpan sedangkan saat meload data dari database ke textfield bisa tampil. contoh aplikasi sederhana yang saya buat sudah saya kirimkan ke email Om. mohon bantuannya ya Om.
    Mudah – Mudahan Bisa belajar java.
    makasih om.

  11. Hendro Steven says:

    Ok nanti saya liat.. tapi gak bisa cepat ya.. sabar.. soalnya aku juga lagi sibut bangetzzzzzzz😦

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

%d bloggers like this: