Membuat pagination pada Java swing


Teman-teman yang sering membuat aplikasi atau Sistem Informasi dengan Java Swing tentu sering berkomunikasi dengan database, entah untuk melakukan query pencarian atau melakukan transaksi. Untuk menampilkan informasi record dari database ke dalam aplikasi Java Swing umumnya yang dipakai menggunakan JTable, nah apa jadinya jika kita ingin menampilkan seluruh data dari suatu tabel database? tentu kita bisa saja menampilkan dengan setiap record ke JTable, namun hal tersebut akan membebani server untuk melakukan pencarian selain itu jika kita misalnya punya lebih 1000 record di tabel dan ditampilkan semuanya ke JTable tentu juga tidak terlalu rapi, karena terlalu panjang scrollnya, nah oleh karena itu kita siasati dengan Pagination sehingga kita dapat menampilkan informasi dari database ke JTable.

Untuk melakukan pagination di Java Swing, saya biasanya menggunakan library JWidget yang dapat teman-teman unduh disini. Di library tersebut terdapat komponen JPagination yang dapat kita tambahkan ke panel/frame dari aplikasi kita, untuk menambahkannya (jika di Netbeans IDE) dengan cara memilih opsi Tools->Pallete->Swing/AWT Components,

setelah itu akan muncul dialog Pallete Manager, kita tambahkan dulu kategori JWidget kemudian tambahkan Library JWidget yang telah diunduh tadi,  sehingga muncul komponen JPagination ketika selesai maka komponen tersebut dapat ditambahkan ke Pallete

Setelah ditambahkan ke pallete, kita dapat memulai latihan menggunakan JPagination. Pertama-tama kita buat dahulu Frame/Panel kemudian tambahkan komponen JTable dan JPagination.

Kemudian pada source nya kita inisialisasi terlebih dahulu model pagination dengan

private DefaultPaginationModel paginationModel;

kemudian pada constructor kita inisialisasi objek tersebut dan kita set nilainya misalnya seperti ini

paginationModel = new DefaultPaginationModel();
//Kita misalkan ada 500 record, disini bisa lakukan count di DB
paginationModel.setTotalItem(500);
//Mengeset jumlah record untuk satu halaman
paginationModel.setPageSize(100);
pagination.setModel(paginationModel);

Nah, selanjutnya bagaimana cara kita untuk menampilkan data pada halaman tertentu? Caranya kita tambahkan event pada JPagination dengan cara klik kanan pada komponen-> Events->Pagination->onPageChange

kemudian tambahkan kita buat code untuk menangani event tersebut

// digunakan untuk mengeset limit pada query DB
int limit = (evt.getCurrentPage() - 1) * evt.getPageSize();
//contoh query
System.out.println("SELECT * FROM PERUSAHAAN LIMIT "
+ limit + ", " + evt.getPageSize());

Sehingga ketika kita jalankan,maka di output akan muncul perintah untuk melakukan query menggunakan limit berdasarkan posisi halaman dan jumlah record yang di set dalam satu halaman. Sengaja disini saya hanya berfokus teknik menggunakan JPagination tanpa komunikasi dengan database agar teman-teman bisa melakukan kustomisasi berdasarkan petunjuk tersebut, jika merasa kesulitan, teman-teman dapat mengunduh contoh project tersebut di Dropbox

3 responses to “Membuat pagination pada Java swing

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 )

Connecting to %s