org.jfree.data.xy

## Class XYDatasetTableModel

- java.lang.Object
- - javax.swing.table.AbstractTableModel
  - - org.jfree.data.xy.XYDatasetTableModel

All Implemented Interfaces:
  java.io.Serializable, java.util.EventListener, javax.swing.table.TableModel, DatasetChangeListener

    public class XYDatasetTableModel
    extends javax.swing.table.AbstractTableModel
    implements javax.swing.table.TableModel, DatasetChangeListener

A READ-ONLY wrapper around a `TableXYDataset` to convert it to a table model for use in a JTable. The first column of the table shows the x-values, the remaining columns show the y-values for each series (series 0 appears in column 1, series 1 appears in column 2, etc).

TO DO:

- implement proper naming for x axis (getColumnName)
- implement setValueAt to remove READ-ONLY constraint (not sure how)

See Also:
  Serialized Form

### Field Summary

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

`listenerList`

### Constructor Summary

Constructors
Constructor and Description
`XYDatasetTableModel()` Default constructor.
`XYDatasetTableModel(TableXYDataset dataset)` Creates a new table model based on the specified dataset.

### Method Summary

Methods
`void` `datasetChanged(DatasetChangeEvent event)` Receives notification that the underlying dataset has changed.
`int` `getColumnCount()` Gets the number of columns in the model.
`java.lang.String` `getColumnName(int column)` Returns the column name.
`int` `getRowCount()` Returns the number of rows.
`java.lang.Object` `getValueAt(int row, int column)` Returns a value of the specified cell.
`boolean` `isCellEditable(int row, int column)` Returns a flag indicating whether or not the specified cell is editable.
`void` `setModel(TableXYDataset dataset)` Sets the model (dataset).
`void` `setValueAt(java.lang.Object value, int row, int column)` Updates the `XYDataset` if allowed.

### Methods inherited from class javax.swing.table.AbstractTableModel

`addTableModelListener, findColumn, fireTableCellUpdated, fireTableChanged, fireTableDataChanged, fireTableRowsDeleted, fireTableRowsInserted, fireTableRowsUpdated, fireTableStructureChanged, getColumnClass, getListeners, getTableModelListeners, removeTableModelListener`

### Methods inherited from class java.lang.Object

`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

### Methods inherited from interface javax.swing.table.TableModel

`addTableModelListener, getColumnClass, removeTableModelListener`

### Constructor Detail

#### XYDatasetTableModel

    public XYDatasetTableModel()

Default constructor.

#### XYDatasetTableModel

    public XYDatasetTableModel(TableXYDataset dataset)

Creates a new table model based on the specified dataset.

Parameters:
  `dataset` - the dataset.

### Method Detail

#### setModel

    public void setModel(TableXYDataset dataset)

Sets the model (dataset).

Parameters:
  `dataset` - the dataset.

#### getRowCount

    public int getRowCount()

Returns the number of rows.

Specified by:
  `getRowCount` in interface `javax.swing.table.TableModel`
Returns:
  The row count.

#### getColumnCount

    public int getColumnCount()

Gets the number of columns in the model.

Specified by:
  `getColumnCount` in interface `javax.swing.table.TableModel`
Returns:
  The number of columns in the model.

#### getColumnName

    public java.lang.String getColumnName(int column)

Returns the column name.

Specified by:
  `getColumnName` in interface `javax.swing.table.TableModel`
Overrides:
  `getColumnName` in class `javax.swing.table.AbstractTableModel`
Parameters:
  `column` - the column index.
Returns:
  The column name.

#### getValueAt

    public java.lang.Object getValueAt(int row,
                              int column)

Returns a value of the specified cell. Column 0 is the X axis, Columns 1 and over are the Y axis

Specified by:
  `getValueAt` in interface `javax.swing.table.TableModel`
Parameters:
  `row` - the row number.
  `column` - the column number.
Returns:
  The value of the specified cell.

#### datasetChanged

    public void datasetChanged(DatasetChangeEvent event)

Receives notification that the underlying dataset has changed.

Specified by:
  `datasetChanged` in interface `DatasetChangeListener`
Parameters:
  `event` - the event
See Also:
  `DatasetChangeListener`

#### isCellEditable

    public boolean isCellEditable(int row,
                         int column)

Returns a flag indicating whether or not the specified cell is editable.

Specified by:
  `isCellEditable` in interface `javax.swing.table.TableModel`
Overrides:
  `isCellEditable` in class `javax.swing.table.AbstractTableModel`
Parameters:
  `row` - the row number.
  `column` - the column number.
Returns:
  `true` if the specified cell is editable.

#### setValueAt

    public void setValueAt(java.lang.Object value,
                  int row,
                  int column)

Updates the `XYDataset` if allowed.

Specified by:
  `setValueAt` in interface `javax.swing.table.TableModel`
Overrides:
  `setValueAt` in class `javax.swing.table.AbstractTableModel`
Parameters:
  `value` - the new value.
  `row` - the row.
  `column` - the column.