Membuat Table di Java dengan AlbertTable


AlbertTable adalah tabel model turunan dari AbstractTableModel Java yang penulis buat sekitar tahun 2014 dan dulunya bernama class OBTable.

Dulu penulis gunakan hanya sebagai sub class dalam aplikasi dekstop Java penulis.

Dan belakangan saat tulisan ini ditulis, penulis sering gunakan kembali untuk kebutuhan membuat tabel, dan penulis pisahkan menjadi package sendiri dengan nama AlbertTable tersebut.

Oleh karena itu dalam blog ini, AlbertTable penulis suguhkan dalam bentuk library Java, yang dapat di download di link berikut:

Kelebihannya adalah tabel dilengkapi dengan key dan mouse adapter untuk keperluan editing dasar, sehingga pengguna dapat langsung melakukan copy-paste data, seperti dari excel sebagaimana ditunjukkan dalam video dibawah ini:


Sedangkan kode berikut ini adalah contoh main class project Java, penggunaan AlbertTable:

package simpletable; 
 
import AlbertTable.ClipboardKeyAdapter; 
import AlbertTable.TModel; 
import AlbertTable.TableMouseAdapter; 
import java.awt.Dimension; 
import java.awt.GridBagConstraints; 
import java.awt.GridBagLayout; 
import java.awt.Toolkit; 
import javax.swing.JFrame; 
import javax.swing.JScrollPane; 
import javax.swing.JTable; 
import javax.swing.WindowConstants; 
import javax.swing.table.TableColumn; 
 
public class SimpleTable extends JFrame 
{ 
    public void setup() 
    { 
        setTitle("Table with AlbertTable"); 

        setLayout(new GridBagLayout()); 
        GridBagConstraints con = new GridBagConstraints(); 

        con.fill = GridBagConstraints.BOTH; 
        con.weightx=1; 
        con.weighty=1; 
        con.gridx=0; 
        con.gridy=0; 

        String[] columnNames=new String[]{"Name 1","Name 2","Name 3"}; 
        String[][] Variables = { 
            {"", ""}, 
            {"", ""}, 
            {"", ""} 
        }; 
        TModel tmodel = new TModel(columnNames, Variables); 
        JTable table = new JTable(tmodel){ 
            public void doLayout() { 
                for (int i = 0; i <getColumnModel().getColumnCount(); i++) { 
                    TableColumn column = getColumnModel().getColumn(i); 
                    column.setPreferredWidth(140); 
                } 
                super.doLayout(); 
            } 
        }; 
        table.setAutoResizeMode(JTable.AUTO_RESIZE_OFF); 
        JScrollPane cpane=new JScrollPane(table,JScrollPane.VERTICAL_SCROLLBAR_AS_NEEDED, JScrollPane.HORIZONTAL_SCROLLBAR_AS_NEEDED); 
        ClipboardKeyAdapter cbcb=new ClipboardKeyAdapter(table); 
        table.addKeyListener(cbcb); 
        table.addMouseListener(new TableMouseAdapter(table,cbcb)); 
        cpane.setPreferredSize(new Dimension(800,400)); 
        add(cpane,con); 

        pack(); 

        Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize(); 
        setLocation((int)(0.5*(screenSize.getWidth()-getWidth())),(int)(0.5*(screenSize.getHeight()-getHeight()))); 
        setDefaultCloseOperation(WindowConstants.DISPOSE_ON_CLOSE); 
        getContentPane().requestFocusInWindow(); 
        setVisible(true); 
    } 

    public static void main(String[] args) { 
        SimpleTable main=new SimpleTable(); 
        main.setup(); 
    } 
} 

Dengan file AlbertTable dapat ditambahkan menggunakan menu Add Jar/Folder di project yang bersangkutan.


Karena telah lama dibuat, penulis mohon maaf tidak dapat menyebutkan sumber referensi kode awal dari AlbertTable atau OBTable.

Yang pasti, seingat penulis, sumber tersebut tidak berasal dari referensi berbahasa Indonesia.

Dan penulis juga memohon maaf jika masih terdapat bug di sana sini, karena memang library ini, penulis buat sesuai kebutuhan dalam proyek penulis sendiri.

Library ini penulis dedikasikan untuk putra penulis Albert Ezra Nathaniel Ubaidillah, yang belum sempat menunjukkan senyumnya, ke ayah-ibunya di dunia ini.

Komentar



Postingan populer dari blog ini

Apps Script untuk Cetak Sertifikat

Kumpulan Source Code Greenfoot

Menyembunyikan Failed Load Images di Blogger

Kode Greenfoot Game Flappy Bird

Algorithma Coretan Abstrak dengan HTML5 Canvas

Kebodohan Karyawan Menyalahkan Sistem

Algorithma Bilangan Prima dengan Javascript

Checking Data yang Belum Dimasukkan dalam Daftar Menggunakan Query Google Sheet

Mencoba Submit Theme di Wordpress.org

Generate Karakter Acak dan Menempatkannya di Sel Google Sheets dengan Apps Script