Berikut ini adalah kumpulan kode kode untuk Jtable JavaSwing yang bisa kita gunakan.

Contents

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