31 Mart 2020 Salı

Swing AbstractTableModel Sınıfı

Giriş
Şu satırı dahil ederiz.
import javax.swing.table.AbstractTableModel;
constructor
Şöyle yaparız.
class DataModel extends AbstractTableModel{
  ArrayList<Object[]> data = new ArrayList<Object[]>();
  ArrayList<String> columnNames = new ArrayList<String>();

  public DataModel(ArrayList<String> cNames){
    super();
    columnNames = cNames;
    
  }
  ...
}
fireTableStructureChanged metodu
Açıklaması şöyle.
Model notifies the view that the data has changed. This would be done by invoking the: fireTableStructureChanged(…);
getColumnCount metodu
Şöyle yaparız.
public int getColumnCount()
{
  return columnNames.size();
};
getColumnName metodu
Şöyle yaparız.
public String getColumnName(int column)
{
  return columnNames.get(column);
}
getRowCount metodu
Şöyle yaparız.
public int getRowCount()
{
  return data.size();
};
getValueAt metodu
Şöyle yaparız.
public Object getValueAt(int rowIndex, int columnIndex){ 
  Object[] row = data.get(rowIndex);

  return row[columnIndex];
};
isCellEditable metodu
Şöyle yaparız.
public boolean isCellEditable(int rowIndex, int columnIndex)
{
  return true;
}
setValueAt metodu

Şöyle yaparızDüzenleme (Editing) işlemi bitince bu metod tetiklenir.
public void setValueAt(Object newValue, int rowIndex, int columnIndex){
  data.get(rowIndex)[columnIndex] = newValue;
  fireTableDataChanged();
}
Kendi metodumuz
Şöyle yaparız.
public void addRows (ArrayList<Object[]> rows) {
  for (int i = 0; i < rows.size(); i++) {
    Object[] clone = rows.get(i).clone();
    data.add(clone);
  }
  fireTableDataChanged();
}

Hiç yorum yok:

Yorum Gönder