Dont think to be the best... ButThink to do the best... whenever and wherever you are... do the best for a lot of people among you
"Man Arofa Nafsah Faqod Arofa Robbah" "Siapa yang kenal dirinya sendiri, dia udah kenal Tuhan-Nya"

JTable Column Width Adjust Manually?, No promise, the Automatic!! (Menyesuaikan Lebar Kolom JTable Secara Manual?, no Janji , seharusnya yang Otomatis!!!! (Menyesuaikan Lebar Kolom JTable Secara Manual?, Ga Janji dehh, mending yang Otomatis!!!!)

Posted on Senin, Oktober 24, 2011 by Akhmad Firdaus


Apa yang paling menyebalkan saat membuat Tabel di Java? Yup menyesuaikan lebar kolom. Secata default, java akan membagi rata lebar tabel dengan jumlah kolom yang ada. Misalnya, terdapat 5 kolom maka lebar setiap kolom akan menjadi 20% dari keseluruhan lebar kolom.
Sebenarnya, Kita dapat menggunakan method:
setPreferredWidth(lebar_kolom);

untuk menyesuaikan kolom, tapi kemudian semua ini akan terasa menyebalkan ketika kita harus mengatur lebar kolom satu per satu untuk setiap kolomnya. Bayangkan jika kita mempunyai 10 tabel dengan banyak kolom didalamnya, yup akan terasa menjengkelkan.


Kenapa tidak kita buat saja class yang dapat mengatur lebar kolom yang otomatis menyesuaikan dengan lebar isi??.


Ok, idenya kayak gini:

Kita akan buat sebuah class yang nantinya class ini akan mempunyai behaviour berikut:
  1. Menghitung jumlah kolom yang ada, dengan mengambil model kolom dengan method getColumnModel();

  2. Class ini akan menghitung lebar maksimal dari isi tabel di tiap kolom, kemudian menjadiknnya sebagai lebar kolom. Misal untuk tabel diatas, class akan mencari isi tabel paling panjang untuk kolom nama, kemudian setelah selesai, maka class akan menjadikannya sebagai lebar dari kolom nama.

Ok, sekarang kita mulai.Pertama, buat sebuah class (namanya terserah), kemudian buat sebuah method di dalamnya,

public void buatKolomSesuai(JTable t){
// isi kolom
}


Kedua, ambil model kolom dari tabel
TableColumnModel modelKolom=t.getColumnModel();


Ketiga, Cari lebar maksimam dari tiap kolom, dan jadikan sebagai lebar kolom dengan method setPreferredWidth(lebar_kolom);


for(int kol=0; kol <>
int lebarKolomMax=0;
for(int baris=0;baris

TableCellRenderer rend=t.getCellRenderer(baris,kol);
Object nilaiTablel=t.getValueAt(baris,kol);
Component comp=rend.getTableCellRendererComponent(t,nilaiTablel,false,false,baris,kol);
lebarKolomMax=Math.max(comp.getPreferredSize().width,lebarKolomMax);
}//akhir for baris
TableColumn kolom=modelKolom.getColumn(kol);
kolom.setPreferredWidth(lebarKolomMax);
}//akhir for kolom
}

Yup, tiga langkah sederhana untuk membuat tabel, dengan lebar kolom yang sudah di sesuaikan.

Berhasil gak neh?

Kita buktikan:
Buat sebuah class untuk menampilkan sebuah tabel. (yang punya Netbeans, pake aja, biar gak pusing bikin tabelnya :)).

Buat sebuah tabel trus isi deh tabelnya dengan data yang temen-temen inginkan. Yup, setelah tabelnya di instansiasi kemudian implementasikan classnya:Nih code lengkapnya:


Jreng-jreng........................... hasilnya:




Selamat mencoba ................................... and keep trying.

No Response to "JTable Column Width Adjust Manually?, No promise, the Automatic!! (Menyesuaikan Lebar Kolom JTable Secara Manual?, no Janji , seharusnya yang Otomatis!!!! (Menyesuaikan Lebar Kolom JTable Secara Manual?, Ga Janji dehh, mending yang Otomatis!!!!)"