Membuat JTable dan Auto Resize Width

By | August 11, 2021
Print Friendly, PDF & Email
2,343 Views

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.

See also  Segmentasi Gambar

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();

 

Leave a Reply