Membuat ComboBox yang Saling Terhubung pada Java Swing | ComboBox Java

java

Pada tutorial yang lalu, saya telah menulis tentang cara menarik data dari database untuk kemudian dimasukkan sebagai item pada combobox java. Pada tutorial ini kita akan membuat 2 buah combobox java yang saling terhubung isinya. Maksudnya seperti ini, misal kita mempunyai 2 buah combobox. Combobox pertama bernama fakultas sedangkan combobox kedua bernama jurusan. Ketika item pada combobox fakultas yang dipilih adalah fakultas teknik maka combobox jurusan akan berisi item jurusan yang ada di fakultas teknik. Begitu pula jika yang dipilih adalah fakultas mipa dan ekonomi, combobox jurusan akan menyesuaikan.

Tampilan akhir aplikasi combobox java adalah seperti ini:
combobox javass aplikasi 2
gambar aplikasi combobox java yang saling terhubung

Tertarik? 😀
Kalau tertarik mari lanjutkan..
Inti dari aplikasi combobox ini adalah menggunakan ActionListener yang dipasang pada combobox fakultas. Pada ActionListener inilah nantinya kita akan membuat kode yang sedemikian rupa sehingga item pada combobox jurusan menyesuaikan dengan pilihan pada combobox fakultas.
Potongan kodenya adalah sebagai berikut

Sudah mendapatkan gambaran cara kerjanya?. Kalau belum mari kita lanjutkan lagi dengan penjelasan yang lebih detail dan kode-kode yang lengkapnya. Pada tutorial combobox java ini saya menggunakan Hibernate dan juga plain JDBC dengan maksud biar yang belum tahu Hibernate juga bisa merasakan manfaat tutorial ini.

Langkah#1 Membuat Project combobox java dan Menambahkan Library
Buat Project dengan nama ComboBoxTerhubung serta buat package-package sesuai dengan gambar berikut ini
struktur project
gambar aplikasi combobox java

Pada node Libraries tambahkan library Hibernate JPA dan MySql JDBC Driver.

Langkah#2 Membuat Data Source Hibernate
Buatlah file konfigurasi untuk Hibernate pada package default dan beri nama file konfigurasi tersebut hibernate.cfg.xml

Setelah konfigurasi Hibernate untuk aplikasi combobox java kita buat, selanjutnya membuat Class yang digunakan untuk mendapatkan SessionFactory yang berguna untuk mendapatkan Session. Objek Session inilah yang berperan penting dalam proses query data pada Hibernate.
Pada package comboboxterhubung.util buat sebuah Class dengan nama HibernateUtil. Adapun isinya adalah sebagai berikut:

Kalau sudah selesai maka saatnya untuk membuat Class entity/domain model yaitu Class yang merepresentasikan tabel yang ada pada database untuk aplikasi combobox java ini. Buat dua buah class dengan nama Fakultas dan Jurusan pada package comboboxterhubung.entity

Class Fakultas

Class Jurusan

Langkah#3 Membuat Service
Service pada aplikasi ini digunakan untuk mendapatkan data dari database. Desain yang baik adalah desain yang memiliki layer/menerapkan layering. Layering menjadikan aplikasi mudah dimodifikasi karena antar objek yang satu dengan objek yang lain tidak saling terikat. Tanpa layering kamu akan langsung menulis kode untuk mengakses database pada UI dengan menggunakan Jdbc misalnya. Suatu saat aplikasi ingin diubah menjadi menggunakah Hibernate atau JPA atau yang lain… waah bisa repot nantinya. Nanti kamu akan melihat bahwa dengan menggunakan layering ini kita bisa menggunakan Hibernate dengan Jdbc hanya dengan mengganti 1 kata 😀 keren kan

Pada package comboboxterhubung.service buat interface dengan nama FakultasService. Interface inilah yang membuat layering kita menjadi fleksibel untuk diubah-ubah implementasinya, dari implementasi Hiberntae ke implementasi Jdbc dan sebaliknya. Ketikkan kode berikut:

Sengaja saya buat simpel dengan hanya ada 1 method untuk mengambil data seluruh fakultas yang terdapat pada sistem. Selanjutnya kita buat implementasinya. Seperti sudah saya katakan diatas kita akan menggunakan 2 implementasi. Implementasi pertama adalah menggunakan Hibernate. Kodenya adalah seperti berikut:

Class FakultasServiceImplHibernate

Untuk implementasi menggunakan Jdbc menggunakan kode seperti ini:

Class FakultasServiceImplJdbc

Service untuk Fakultas sudah selesai dibuat, berarti selanjutnya adalah membuat Service untuk Jurusan. Sama seperti dalam pembuatan FakultasService diatas, kita membuat terlebih dahulu sebuah interface untuk kemudian dibuat implementasinya dalam Hibernate dan Jdbc. Langsung saja ketik kodenya seperti ini

interface JurusanService

Impelementasi menggunakan Hibernate

class JurusanServiceImplHibernate

Impementasi menggunakan Jdbc

Sampai disini maka telah selesai untuk bagian Service pada aplikasi combobox java ini. Hampir seluruh bagian telah siap tinggal membuat UI dan memodifiksi Class Main (Class yang terpadat pada package comboboxterhubung).

langkah#4 Membuat UI dan Class Main
Untuk bentuk tampilannya sesuaikan dengan selera kamu. Kalau punya saya seperti ini:
desain ui

beri nama MainFrame dan taruh pada package comboboxterhubung.ui

Sebelum menambahkan method, kita modifikasi terlebih dahulu Class Main menjadi seperti ini:

Lihat pada bagian ini

Jika property tersebut bernilai True maka yang akan digunakan adalah implementasi Jdbc. Sedangkan jika nilainya di set menjadi False maka yang digunakan adalah implementasi Hibernate.. praktis dan keren kan 😀

Setelah beres maka saatnya untuk menambahkan beberapa method pada MainFrame. Buta sebuah private class dengan nama ComboBoxListener didalam class MainFrame dan ketikkan kode berikut

Buat sebuah private method untuk mengisi data combobox fakultas sekaligus menambahkan ActionListener ke combobox fakultas

Terkahir memodifikasi constructor menjadi seperti ini

Selesai 😀
Sekarang jalankan Class Main (jangan Class MainFrame). Seharusnya aplikasi combobox java yang terhubung berjalan sebagaimana mestinya.

Jika masih ada yang kebingungan memahami tutorial combobox java ini silahkan berdiskusi pada fitur koemntar yang telah disediakan dibawah ini 🙂

Happy Coding 😀

Facebook Comments
 

Agung Setiawan

Agung Setiawan adalah software engineer di BukaLapak.com, penulis sekaligus pecinta sastra, dan pembaca buku

 
Halo, perkenalkan saya Agung Setiawan.
Saya Software Engineer di BukaLapak.
Simak pemikian saya soal dunia Software Engineering via Twitter di @agungsetiawanmu dan facebook
Blog ini saya update seminggu sekali jadi sering-sering saja mampir
Mau belajar Vim bareng saya?
Belajar ngoding dari nol menggunakan PHP

Leave a Reply

Your email address will not be published. Required fields are marked *