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:
- Menghitung jumlah kolom yang ada, dengan mengambil model kolom dengan method getColumnModel();
- 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.
Langganan:
Posting Komentar (Atom)
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!!!!)"
Posting Komentar