Home > Java > Menyesuaikan Lebar Kolom JTable Secara Otomatis

Menyesuaikan Lebar Kolom JTable Secara Otomatis

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:

SesuaikanKolom.class+DemoTable.class

 

http://armypratama.wordpress.com/2010/01/04/menyesuaikan-lebar-kolom-jtable-secara-otomatis/

Categories: Java
  1. No comments yet.
  1. No trackbacks yet.

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: