Membuat JTable dan Auto Resize Width
Urusan tampilan data yang berbentuk tabular berbasis GUI, maka Tabel / Table adalah cara terbaik. Di Java Swing Netbeans, component Tabel/Table menggunakan class JTable, namun agak sulit untuk di custom. Yuk kita bahas cara membuat JTable yang dinamis di java.
Tidak seperti component GUI di windows seperti berbasis Net Framework yang sudah mature dalam urusan data grid. Perkembangan Data Grid atau di Java disebut dengan JTable tidak begitu banyak berkembang mengingat java desktop tidak banyak penggunannya, malahan lebih ke arah server.
Berdasarkan pengalaman membuat GUI di Java, langkah terbaik yaitu kita membuat extends class JPanel yang didalamnya terdapat public JTable dan JDefaultTableModel.
Membuat Panel dari extends JPanel
Salah satu kemudahan yang ditawarkan bahasa pemrograman berbasis OOP yaitu adanya fitur extends sehingga kelas anak / child class akan mewarisi semua sifat dari parent class. Yuk kita buat langsung dengan nama Panel.java yang isinya sebagai berikut
public class Panel extends JPanel { private JTable table; public DefaultTableModel model; public Panel(){ String[] header = {"NO", "FILE","UKURAN"}; // Membuat nama kolom tabel Object[][] dataTabel = dataTabel = new Object[0][header.length]; this.setLayout(new GridLayout()); // Membuat table model model = new DefaultTableModel(dataTabel,header); table = new JTable(model); JScrollPane p = new JScrollPane(table); add(p); } public void tambahBaris(Object [] row){ model.addRow(row); TableColumnAdjuster tca = new TableColumnAdjuster(table); tca.adjustColumns(); } public void hapusSemua(){ if (model.getRowCount() > 0) { for (int i = model.getRowCount() - 1; i > -1; i--) { model.removeRow(i); } } } }
Oiya, untuk mendapatkan fitur autoresize width untuk JTable, kita menggunakan class yang sudah dibuat oleh https://tips4java.wordpress.com/2008/11/10/table-column-adjuster/. Kodenya disini http://www.camick.com/java/source/TableColumnAdjuster.java
Panel yang kita buat diatas ditambahkan component berupa JScrollPane untuk menampung JTable didalamnya. Adapun JTable agar dinamis harus kita masukan DefaultTableModel dengan header berupa No, File, dan Ukuran.
JFrame untuk menampilkan data
Kita tarik saja kedalam JFrame agar terlihat nampak Panel yang kita buat
pada button JButton1 kita kasih kode berikut untuk membaca folder
File files = new File("C:/Windows/"); int i = 1; for(File file:files.listFiles() ){ this.panel1.tambahBaris(new Object[]{i,file.getName(),file.length()}); i++; }
Hasil tampilan akhir
Yup, kalian sudah bisa membuat Tabel dinamis di java, sedangkan untuk menghapus baris, panggil saja perintah
hapusSemua();