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.
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
Posting Komentar