Class ArrayTableModel<R>

  • All Implemented Interfaces:
    java.io.Serializable, javax.swing.table.TableModel

    public class ArrayTableModel<R>
    extends javax.swing.table.AbstractTableModel
    TableModel which contains its data as an array of objects, one per row. The ArrayTableSorter class can be used in conjunction with this class to provide tables which can be sorted by clicking on column headers. The model works by having an array of column objects which know how to interrogate the array of data objects in such a way as to return cell values. The implementation of the column and data item objects is therefore interlinked.
    Since:
    14 Oct 2009
    Author:
    Mark Taylor
    See Also:
    Serialized Form
    • Field Summary

      • Fields inherited from class javax.swing.table.AbstractTableModel

        listenerList
    • Constructor Summary

      Constructors 
      Constructor Description
      ArrayTableModel​(R[] items)
      Constructor.
    • Method Summary

      All Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      java.lang.Class<?> getColumnClass​(int icol)  
      int getColumnCount()  
      java.lang.String getColumnName​(int icol)  
      java.util.List<ArrayTableColumn<R,​?>> getColumns()
      Returns the column specifiers used by this table.
      R[] getItems()
      Returns the row data items used by this model.
      int getRowCount()  
      java.lang.Object getValueAt​(int irow, int icol)  
      void setColumns​(java.util.List<? extends ArrayTableColumn<? extends R,​?>> columns)
      Sets the column specifiers to be used by this table.
      void setItems​(R[] items)
      Sets the row data items to be used by this table.
      void sortByColumn​(int icol, boolean descending)
      Sorts the rows in this table according to the ordering of the data in one of the columns.
      • Methods inherited from class javax.swing.table.AbstractTableModel

        addTableModelListener, findColumn, fireTableCellUpdated, fireTableChanged, fireTableDataChanged, fireTableRowsDeleted, fireTableRowsInserted, fireTableRowsUpdated, fireTableStructureChanged, getListeners, getTableModelListeners, isCellEditable, removeTableModelListener, setValueAt
      • Methods inherited from class java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
    • Constructor Detail

      • ArrayTableModel

        public ArrayTableModel​(R[] items)
        Constructor.
        Parameters:
        items - initial list of items
    • Method Detail

      • setColumns

        public void setColumns​(java.util.List<? extends ArrayTableColumn<? extends R,​?>> columns)
        Sets the column specifiers to be used by this table.
        Parameters:
        columns - column specifiers
      • getColumns

        public java.util.List<ArrayTableColumn<R,​?>> getColumns()
        Returns the column specifiers used by this table.
        Returns:
        column specifiers
      • setItems

        public void setItems​(R[] items)
        Sets the row data items to be used by this table.
        Parameters:
        items - row data items, one per row
      • getItems

        public R[] getItems()
        Returns the row data items used by this model.
        Returns:
        row data items, one per row
      • sortByColumn

        public void sortByColumn​(int icol,
                                 boolean descending)
        Sorts the rows in this table according to the ordering of the data in one of the columns. The ordering may not be maintained if the data changes.
        Parameters:
        icol - index of column to sort by
        descending - true to sort down, false to sort up
      • getColumnCount

        public int getColumnCount()
      • getRowCount

        public int getRowCount()
      • getValueAt

        public java.lang.Object getValueAt​(int irow,
                                           int icol)
      • getColumnName

        public java.lang.String getColumnName​(int icol)
        Specified by:
        getColumnName in interface javax.swing.table.TableModel
        Overrides:
        getColumnName in class javax.swing.table.AbstractTableModel
      • getColumnClass

        public java.lang.Class<?> getColumnClass​(int icol)
        Specified by:
        getColumnClass in interface javax.swing.table.TableModel
        Overrides:
        getColumnClass in class javax.swing.table.AbstractTableModel