Senin, 27 Agustus 2012

Adding and Remove Row in JTable

Sambil mau nambah catatang lagi nih, pengen tulis snippet code nambah dan hapus baris di JTable. Pertama kita bikin dulu mode table kita sendiri, tentunya kita extends dari yang sebelumnya :D. Kemudian kita bikin class bantu (klo gw nyebutnya gitu :D ). 


Langsung aja ya ke code, :)

import java.util.ArrayList;
import java.util.List;
import javax.swing.JOptionPane;
import javax.swing.table.AbstractTableModel;

/**
 *
 * @author user
 */
public class TableMTIModel extends AbstractTableModel{
       String[] colom = {"MTI", "Fields"};
       List<Helper> l = new ArrayList<Helper>();
       Helper hl = new Helper();
    
       public TableMTIModel () {        
             l.add(hl);        
       }    

       @Override
       public int getRowCount() {
             return l.size();
       }

       @Override
       public int getColumnCount() {
             return colom.length;
       }

        @Override
        public String getColumnName(int col) {
             return colom[col];
        }
    
       @Override
       public Object getValueAt(int rowIndex, int columnIndex) {
            if (columnIndex == 0)
                 return l.get(rowIndex).getCol1();
            else
                 return l.get(rowIndex).getCol2();
       }
    
       @Override
       public void setValueAt(Object value, int row, int col) {
             fireTableCellUpdated(row, col);
       }

       @Override
       public boolean isCellEditable(int row, int col) {
            return true;
       }

       public void addRow() {
            l.add(hl);
            fireTableDataChanged();
       }

       public void removeRow() {
            if(getRowCount() != 0) {
                 l.remove(getRowCount() - 1);
                 fireTableDataChanged();
            } else JOptionPane.showMessageDialog(null, "Upps, row is zero!!");
       }
    
}

/* Helper class for build table :)
 */
class Helper {
       String Col1, Col2;

       public Helper() {
            Col1 = null;
            Col2 = "Set Fields";
       }

       public String getCol1() {
            return Col1;
       }

        public String getCol2() {
             return Col2;
        }
}


Kode diatas sudah mendukung untuk tambah atau hapus row di Table, jika kalian menggunaka button untuk triger dua action tersebut, maka cukup panggil saja fungsi tersebut pada actionlistner button. Seperti dibawah ini

...........
...........
TableMTIModel tm = new TableMTIModel();   //Create Obj tm as TableMTIModel
JTable tbl = new JTable(tm);     // Create table and tm as table model for object tbl
............
............

 private void jB_DelMTIActionPerformed(java.awt.event.ActionEvent evt) { 
        // TODO add your handling code here:
        tm.removeRow();


private void jB_AddMTIActionPerformed(java.awt.event.ActionEvent evt) {
        // TODO add your handling code here:
        tm.addRow();
}

Kemudian tinggal click aja dah, mudah bukan :D

Sekian :)

0 komentar:

Posting Komentar