Module java.desktop
Package javax.swing.table

# Interface TableModel

All Known Implementing Classes:
  `AbstractTableModel`, `DefaultTableModel`

public interface TableModel
The `TableModel` interface specifies the methods the `JTable` will use to interrogate a tabular data model.

The `JTable` can be set up to display any data model which implements the `TableModel` interface with a couple of lines of code:

          TableModel myData = new MyTableModel();
          JTable table = new JTable(myData);

For further documentation, see Creating a Table Model in The Java Tutorial.

See Also:
  - `JTable`

## Method Summary

Modifier and Type
Method
Description
`void`
`addTableModelListener(TableModelListener l)`
Adds a listener to the list that is notified each time a change to the data model occurs.
`Class<?>`
`getColumnClass(int columnIndex)`
Returns the most specific superclass for all the cell values in the column.
`int`
`getColumnCount()`
Returns the number of columns in the model.
`String`
`getColumnName(int columnIndex)`
Returns the name of the column at `columnIndex`.
`int`
`getRowCount()`
Returns the number of rows in the model.
`Object`
`getValueAt(int rowIndex, int columnIndex)`
Returns the value for the cell at `columnIndex` and `rowIndex`.
`boolean`
`isCellEditable(int rowIndex, int columnIndex)`
Returns true if the cell at `rowIndex` and `columnIndex` is editable.
`void`
`removeTableModelListener(TableModelListener l)`
Removes a listener from the list that is notified each time a change to the data model occurs.
`void`
`setValueAt(Object aValue, int rowIndex, int columnIndex)`
Sets the value in the cell at `columnIndex` and `rowIndex` to `aValue`.

## Method Details

### getRowCount

int getRowCount()
Returns the number of rows in the model. A `JTable` uses this method to determine how many rows it should display. This method should be quick, as it is called frequently during rendering.

Returns:
  the number of rows in the model
See Also:
  - `getColumnCount()`

### getColumnCount

int getColumnCount()
Returns the number of columns in the model. A `JTable` uses this method to determine how many columns it should create and display by default.

Returns:
  the number of columns in the model
See Also:
  - `getRowCount()`

### getColumnName

String getColumnName(int columnIndex)
Returns the name of the column at `columnIndex`. This is used to initialize the table's column header name. Note: this name does not need to be unique; two columns in a table can have the same name.

Parameters:
  `columnIndex` - the index of the column
Returns:
  the name of the column

### getColumnClass

Class<?> getColumnClass(int columnIndex)
Returns the most specific superclass for all the cell values in the column. This is used by the `JTable` to set up a default renderer and editor for the column.

Parameters:
  `columnIndex` - the index of the column
Returns:
  the common ancestor class of the object values in the model.

### isCellEditable

boolean isCellEditable(int rowIndex, int columnIndex)
Returns true if the cell at `rowIndex` and `columnIndex` is editable. Otherwise, `setValueAt` on the cell will not change the value of that cell.

Parameters:
  `rowIndex` - the row whose value to be queried
  `columnIndex` - the column whose value to be queried
Returns:
  true if the cell is editable
See Also:
  - `setValueAt(java.lang.Object, int, int)`

### getValueAt

Object getValueAt(int rowIndex, int columnIndex)
Returns the value for the cell at `columnIndex` and `rowIndex`.

Parameters:
  `rowIndex` - the row whose value is to be queried
  `columnIndex` - the column whose value is to be queried
Returns:
  the value Object at the specified cell

### setValueAt

void setValueAt(Object aValue, int rowIndex, int columnIndex)
Sets the value in the cell at `columnIndex` and `rowIndex` to `aValue`.

Parameters:
  `aValue` - the new value
  `rowIndex` - the row whose value is to be changed
  `columnIndex` - the column whose value is to be changed
See Also:
  - `getValueAt(int, int)`
  - `isCellEditable(int, int)`

### addTableModelListener

void addTableModelListener(TableModelListener l)
Adds a listener to the list that is notified each time a change to the data model occurs.

Parameters:
  `l` - the TableModelListener

### removeTableModelListener

void removeTableModelListener(TableModelListener l)
Removes a listener from the list that is notified each time a change to the data model occurs.

Parameters:
  `l` - the TableModelListener