Berikut ini adalah kumpulan kode kode untuk Jtable JavaSwing yang bisa kita gunakan.
Mengatur tampilan
Jika kita menggunakan netbeans sebagai idenya maka kita perlu membuat method baru untuk mengatur widget yang ada pada JavaSwing. Karena kita tidak bisa mengedit secara langsung lewat code editor di netbeans. jadi kita perlu membuat method seperti contoh dibawah ini.
Di dalam constructor silahkan tambahkan kode beikut:
initComponents(); // default dari netbeans myInitComponents();
Setelah itu silahkan bikin methodnya
private void myInitComponents(){ // Kode untuk mengatur widget bisa di letakkan di sini }
Center Table Header
Letakkan kode ini di myInitComponents
((DefaultTableCellRenderer) jTable1.getTableHeader().getDefaultRenderer()).setHorizontalAlignment(JLabel.CENTER);
Center Table Cell
Letakkan kode ini di myInitComponents
// Center Table Render // DefaultTableCellRenderer rendar = new DefaultTableCellRenderer(); rendar.setHorizontalAlignment(jLabel1.CENTER); jTable1.getColumnModel().getColumn(1).setCellRenderer(rendar);
Set Lebar Column Table
Letakkan kode ini di myInitComponents
// Set Width of table TableColumnModel tcm = jTable1.getColumnModel(); tcm.getColumn(0).setPreferredWidth(0);
Event saat header di click
jTable1.getTableHeader().addMouseListener(new MouseAdapter() { @Override public void mouseClicked(MouseEvent e) { int col = jTable1.columnAtPoint(e.getPoint()); String name = jTable1.getColumnName(col); System.out.println("Column index selected " + col + " " + name); } });
Set Cursor Column
Bikin method saat table mouse move event
private void jTable1MouseMoved(java.awt.event.MouseEvent evt) { if(jTable1.columnAtPoint(evt.getPoint())==0){ setCursor(java.awt.Cursor.HAND_CURSOR); }else{ setCursor(0); } }
Set Column Sebagai Combobox 1
Sebelumnya silahkan dulu membuat class yang meng extend dari JComboBox
private class headerKey extends JComboBox{ headerKey(){ addItem("item1"); addItem("item2"); setEditable(true); } }
Setelah itu tambahkan / passang combobox ke dalam table
TableColumn hk = (TableColumn) jTable3.getColumnModel().getColumn(0); hk.setCellEditor(new DefaultCellEditor(new headerKey()));
Set Column Sebagai Combobox 2
String[] datacombotabl32 ={"item1","item2","item3"}; JComboBox tablecombo = new JComboBox(datacombotabl32); TableColumn hk2 = (TableColumn) jTable3.getColumnModel().getColumn(1); hk2.setCellEditor(new DefaultCellEditor(tablecombo)); tablecombo.setEditable(true);
Anda juga bisa menambahkan listerner saat performed
tablecombo.addActionListener(new ActionListener(){ @Override public void actionPerformed(ActionEvent e) { JOptionPane.showMessageDialog(null, tablecombo.getSelectedItem()); } });
Set Column Sebagai Checkbox
Untuk mensetting sebuah column sebagai checkbox, silahkan click kanan pada table, dan pilih menu Table Content
Setelah itu pilih tab Columns pada bagian . Untuk column yang akan di ubah menjadi checkbox, silahkan rubah tipenya menjadi Boolean
Ekseskusi Data / Tampilan
Menambahkan data pada table
DefaultTableModel model = (DefaultTableModel) jTable1.getModel(); model.addRow(new Object[]{"", "", "", ""});
Merubah Value pada colom tertentu Jika data boolean atau checkbox
DefaultTableModel model = (DefaultTableModel) jTable1.getModel(); for(int i=0 ; i < model.getRowCount();i++){ model.setValueAt(true, i, 0); }
Merubah Value pada colom tertentu Jika data object
DefaultTableModel model = (DefaultTableModel) jTable1.getModel(); for(int i=0 ; i < model.getRowCount();i++){ model.setValueAt("nilai value", i, 0); }
Menghapus baris yang terseleksi
int[] rowsToSelect = jTable1.getSelectedRows(); DefaultTableModel model = (DefaultTableModel) jTable1.getModel(); int x =0; int lastDeleted = 0; for ( final int idx : rowsToSelect ){ try { model.removeRow(idx - x); lastDeleted = idx -x; } catch (Exception e) { } x +=1; } //Highglitht ListSelectionModel sm = jTable1.getSelectionModel(); int rowCount = jTable1.getRowCount(); if (rowCount == lastDeleted){ sm.setSelectionInterval(rowCount-1, rowCount-1); }else if(lastDeleted == 0){ sm.setSelectionInterval(0, 0); }else{ sm.setSelectionInterval(lastDeleted, lastDeleted); }
Menghapus baris data pada kondisi tertentu ( Delete selected )
DefaultTableModel model = (DefaultTableModel) jTable1.getModel(); for(int i=0 ; i < model.getRowCount();i++){ boolean val = (boolean) model.getValueAt(i, 0); if (val== true){ model.removeRow(i); i=i-1; } }
Clear Table
DefaultTableModel model = (DefaultTableModel) jTable1.getModel(); model.setRowCount(0);
Merubah Selection
Highlight / Select Last RowSet
ListSelectionModel sm = jTable1.getSelectionModel(); int rowCount = jTable1.getRowCount(); sm.setSelectionInterval(rowCount-1, rowCount-1);
Menambah Selection
sm.addSelectionInterval(1, 1);
Select All
ListSelectionModel sm = jTable1.getSelectionModel(); DefaultTableModel model = (DefaultTableModel) jTable1.getModel(); sm.addSelectionInterval( 0, model.getRowCount() );
Merubah Index Dari Row
Menaikan / menggeser ke atas dengan button
int index = jTable1.getSelectedRow(); if (index > 0){ DefaultTableModel myModel = (DefaultTableModel) jTable1.getModel(); myModel.moveRow(index, index, index - 1); ListSelectionModel sm = jTable1.getSelectionModel(); sm.setSelectionInterval(index - 1, index - 1); }
Menurunkan/ menggeser ke bawah dengan button
int index = jTable1.getSelectedRow(); if (index < jTable1.getRowCount()-1){ DefaultTableModel myModel = (DefaultTableModel) jTable1.getModel(); myModel.moveRow(index, index, index +1); ListSelectionModel sm = jTable1.getSelectionModel(); sm.setSelectionInterval(index + 1, index + 1); }