Java Platform 1.2

javax.swing
Class JTable

java.lang.Object
  |
  +--java.awt.Component
        |
        +--java.awt.Container
              |
              +--javax.swing.JComponent
                    |
                    +--javax.swing.JTable

public class JTable
extends JComponent
implements TableModelListener, Scrollable, TableColumnModelListener, ListSelectionListener, CellEditorListener, Accessible

JTable is a user-interface component that presents data in a two-dimensional table format. The JTable has many facilities that make it possible to customize its rendering and editing but provides defaults for these features so that simple tables can be set up easily. For example, to set up a table with 10 rows and 10 columns of numbers:

      TableModel dataModel = new AbstractTableModel() {
          public int getColumnCount() { return 10; }
          public int getRowCount() { return 10;}
          public Object getValueAt(int row, int col) { return new Integer(row*col); }
      };
      JTable table = new JTable(dataModel);
      JScrollPane scrollpane = new JScrollPane(table);
 

Because the JTable is now much easier to set up with custom models the DefaultTableModel is less useful than it was in previous releases. Instead of copying the data in an application into the DefaultTableModel, we recommend wrapping it in the methods of the TableModel interface and passing the real data to the JTable as above. This technique is nearly as concise as using a DefaultTableModel and starting this way has a number of advantages over the longer term. In particular: it is a scalable technique, is easier to handle dynamic or editable tables and often results in much more efficient applications because the model is free to choose the internal representation that best suits the data.

The "Table" directory in the examples/demo area gives a number of complete examples of JTable usage, covering how the JTable can be used to provide an editable view of data taken from a database and how to modify the columns in the display to use specialized renderers and editors. For example, overriding AbstractTableModel's getColumnClass() method to return a value of ImageIcon.class for a given column allows icons to be displayed, while returning a value of Number.class allows digits to be right-justified in the column.

The JTable uses integers exclusively to refer to both the rows and the columns of the model that it displays. The JTable simply takes a tabular range of cells and uses getValueAt(int, int) to retrieve and display the appropriate values from the model.

If getTableHeader().setReorderingAllowed(boolean) is used to enable column reordering columns may be rearranged in the JTable so that the view's columns appear in a different order to the columns in the model. This does not affect the implementation of the model at all: when the columns are reordered, the JTable maintains the new order of the columns internally and converts its column indices before querying the model.

So, when writing a TableModel, it is not necessary to listen for column reordering events as the the model will be queried in its own co-ordinate system regardless of what is happening in the view. In the examples area there is a demonstration of a sorting algorithm making use of exactly this technique to interpose yet another co-ordinate system where the order of the rows is changed, rather than the order of the columns.

The general rule for the JTable API and the APIs of all its associated classes, including the the column model and both the row and column selection models, is: methods using integer indices for rows and columns always use the co-ordinate system of the view. There are three exceptions to this rule:

The TableColumn provides a slot for holding an identifier or "tag" for each column and the JTable and TableColumModel both support getColumn(Object id) conveniences for locating columns by their identifier. If no identifier is explicitly set, the TableColumn returns its header value (the name of the column) as a default. A different identifier, which can be of any type, can be set using the TableColumn's setIdentifier() method. All of the JTable's functions operate correctly regardless of the type and uniqueness of these identifiers.

The convertColumnIndexToView() and convertColumnIndexToModel() methods have been provided to convert between the two co-ordinate systems but they are rarely needed during normal use.

Like all JComponent classes, you can use JComponent.registerKeyboardAction(java.awt.event.ActionListener, java.lang.String, javax.swing.KeyStroke, int) to associate an Action object with a KeyStroke and execute the action under specified conditions.

See How to Use Tables in The Java Tutorial for further documentation.

For the keyboard keys used by this component in the standard Look and Feel (L&F) renditions, see the JTable key assignments.

Warning: Serialized objects of this class will not be compatible with future Swing releases. The current serialization support is appropriate for short term storage or RMI between applications running the same version of Swing. A future release of Swing will provide support for long term persistence.

See Also:
Serialized Form

Inner Class Summary
protected  class JTable.AccessibleJTable
          The class used to obtain the accessible role for this object.
 
Inner classes inherited from class javax.swing.JComponent
JComponent.AccessibleJComponent
 
Field Summary
static int AUTO_RESIZE_ALL_COLUMNS
          During all resize operations, proportionately resize all columns
static int AUTO_RESIZE_LAST_COLUMN
          During all resize operations, apply adjustments to the last column only
static int AUTO_RESIZE_NEXT_COLUMN
          When a column is adjusted in the UI, adjust the next column the opposite way
static int AUTO_RESIZE_OFF
          Do not adjust column widths automatically, use a scrollbar
static int AUTO_RESIZE_SUBSEQUENT_COLUMNS
          During UI adjustment, change subsequent columns to preserve the total width
protected  boolean autoCreateColumnsFromModel
          The table will query the TableModel to build the default set of columns if this is true.
protected  int autoResizeMode
          This mode value determines if table automatically resizes the width the table's columns to take up the entire width of the table, and how it does the resizing.
protected  TableCellEditor cellEditor
          The object that overwrites the screen real estate occupied by the current cell and allows the user to change those contents.
protected  boolean cellSelectionEnabled
          If this is true, then both a row selection and a column selection can be non-empty at the same time, the selected cells are the the cells whose row and column are both selected.
protected  TableColumnModel columnModel
          The TableColumnModel of the table
protected  TableModel dataModel
          The TableModel of the table
protected  Hashtable defaultEditorsByColumnClass
          A table of objects that display and edit the contents of a cell, indexed by class.
protected  Hashtable defaultRenderersByColumnClass
          A table of objects that display the contents of a cell, indexed by class.
protected  int editingColumn
          Identifies the column of the cell being edited.
protected  int editingRow
          Identifies the row of the cell being edited.
protected  Component editorComp
          If editing, Component that is handling the editing.
protected  Color gridColor
          The color of the grid
protected  Dimension preferredViewportSize
          Used by the Scrollable interface to determine the initial visible area
protected  int rowHeight
          The height of all rows in the table
protected  int rowMargin
          The height margin between rows
protected  boolean rowSelectionAllowed
          Row selection allowed in this table
protected  Color selectionBackground
          The background color of selected cells
protected  Color selectionForeground
          The foreground color of selected cells
protected  ListSelectionModel selectionModel
          The ListSelectionModel of the table, used to keep track of row selections
protected  boolean showHorizontalLines
          The table draws horizontal lines between cells if showHorizontalLines is true
protected  boolean showVerticalLines
          The table draws vertical lines between cells if showVerticalLines is true
protected  JTableHeader tableHeader
          The TableHeader working with the table
 
Fields inherited from class javax.swing.JComponent
accessibleContext, listenerList, TOOL_TIP_TEXT_KEY, ui, UNDEFINED_CONDITION, WHEN_ANCESTOR_OF_FOCUSED_COMPONENT, WHEN_FOCUSED, WHEN_IN_FOCUSED_WINDOW
 
Fields inherited from class java.awt.Component
BOTTOM_ALIGNMENT, CENTER_ALIGNMENT, LEFT_ALIGNMENT, RIGHT_ALIGNMENT, TOP_ALIGNMENT
 
Constructor Summary
JTable()
          Constructs a default JTable which is initialized with a default data model, a default column model, and a default selection model.
JTable(int numRows, int numColumns)
          Constructs a JTable with numRows and numColumns of empty cells using the DefaultTableModel.
JTable(Object[][] rowData, Object[] columnNames)
          Constructs a JTable to display the values in the two dimensional array, rowData, with column names, columnNames.
JTable(TableModel dm)
          Constructs a JTable which is initialized with dm as the data model, a default column model, and a default selection model.
JTable(TableModel dm, TableColumnModel cm)
          Constructs a JTable which is initialized with dm as the data model, cm as the column model, and a default selection model.
JTable(TableModel dm, TableColumnModel cm, ListSelectionModel sm)
          Constructs a JTable which is initialized with dm as the data model, cm as the column model, and sm as the selection model.
JTable(Vector rowData, Vector columnNames)
          Constructs a JTable to display the values in the Vector of Vectors, rowData, with column names, columnNames.
 
Method Summary
 void addColumn(TableColumn aColumn)
          Appends aColumn to the end of the array of columns held by the JTable's column model.
 void addColumnSelectionInterval(int index0, int index1)
          Adds the columns from index0 to index0 inclusive to the current selection.
 void addNotify()
          Calls configureEnclosingScrollPane.
 void addRowSelectionInterval(int index0, int index1)
          Adds the rows from index0 to index0 inclusive to the current selection.
 void clearSelection()
          Deselects all selected columns and rows.
 void columnAdded(TableColumnModelEvent e)
          Tells listeners that a column was added to the model.
 int columnAtPoint(Point point)
          Returns the index of the column that point lies in, or -1 if it lies outside the receiver's bounds.
 void columnMarginChanged(ChangeEvent e)
          Tells listeners that a column was moved due to a margin change.
 void columnMoved(TableColumnModelEvent e)
          Tells listeners that a column was repositioned.
 void columnRemoved(TableColumnModelEvent e)
          Tells listeners that a column was removed from the model.
 void columnSelectionChanged(ListSelectionEvent e)
          Tells listeners that the selection model of the TableColumnModel changed.
protected  void configureEnclosingScrollPane()
          If the JTable is the viewportView of an enclosing JScrollPane (the usual situation), configure this ScrollPane by, amongst other things, installing the table's tableHeader as the columnHeaderView of the scrollpane.
 int convertColumnIndexToModel(int viewColumnIndex)
          Return the index of the column in the model whose data is being displayed in the column viewColumnIndex in the display.
 int convertColumnIndexToView(int modelColumnIndex)
          Return the index of the column in the view which is displaying the data from the column modelColumnIndex in the model.
protected  TableColumnModel createDefaultColumnModel()
          Returns the default column model object which is a DefaultTableColumnModel.
 void createDefaultColumnsFromModel()
          This method will create default columns for the table from the data model using the getColumnCount() and getColumnClass() methods defined in the TableModel interface.
protected  TableModel createDefaultDataModel()
          Returns the default table model object which is a DefaultTableModel.
protected  void createDefaultEditors()
          Creates default cell editors for Objects, numbers, and boolean values.
protected  void createDefaultRenderers()
           
protected  ListSelectionModel createDefaultSelectionModel()
          Returns the default selection model object which is a DefaultListSelectionModel.
protected  JTableHeader createDefaultTableHeader()
          Returns the default table header object which is a JTableHeader.
static JScrollPane createScrollPaneForTable(JTable aTable)
          Deprecated. As of Swing version 1.0.2, replaced by new JScrollPane(aTable).
 boolean editCellAt(int row, int column)
          Programmatically starts editing the cell at row and column, if the cell is editable.
 boolean editCellAt(int row, int column, EventObject e)
          Programmatically starts editing the cell at row and column, if the cell is editable.
 void editingCanceled(ChangeEvent e)
          Invoked when editing is canceled.
 void editingStopped(ChangeEvent e)
          Invoked when editing is finished.
 AccessibleContext getAccessibleContext()
          Get the AccessibleContext associated with this JComponent
 boolean getAutoCreateColumnsFromModel()
          Returns whether the table will create default columns from the model.
 int getAutoResizeMode()
          Returns auto resize mode of the table.
 TableCellEditor getCellEditor()
          Return the cellEditor.
 TableCellEditor getCellEditor(int row, int column)
          Return an appropriate editor for the cell specified by this this row and column.
 Rectangle getCellRect(int row, int column, boolean includeSpacing)
          Returns a rectangle locating the cell that lies at the intersection of row and column.
 TableCellRenderer getCellRenderer(int row, int column)
          Return an appropriate renderer for the cell specified by this this row and column.
 boolean getCellSelectionEnabled()
          Returns true if simultaneous row and column selections are allowed
 TableColumn getColumn(Object identifier)
          Returns the TableColumn object for the column in the table whose identifier is equal to identifier, when compared using equals().
 Class getColumnClass(int column)
          Returns the type of the column at the specified view position.
 int getColumnCount()
          Returns the number of columns in the column model, note this may be different to the number of columns in the table model.
 TableColumnModel getColumnModel()
          Returns the TableColumnModel that contains all column inforamtion of this table.
 String getColumnName(int column)
          Returns the name of the column at the specified view position.
 boolean getColumnSelectionAllowed()
          Returns true if columns can be selected.
 TableCellEditor getDefaultEditor(Class columnClass)
          Returns the editor to be used when no editor has been set in a TableColumn.
 TableCellRenderer getDefaultRenderer(Class columnClass)
          Returns the renderer to be used when no renderer has been set in a TableColumn.
 int getEditingColumn()
          This returns the index of the editing column.
 int getEditingRow()
          Returns the index of the editing row.
 Component getEditorComponent()
          If the receiver is currently editing this will return the Component that was returned from the CellEditor.
 Color getGridColor()
          Returns the color used to draw grid lines.
 Dimension getIntercellSpacing()
          Returns the horizontal and vertical spacing between cells.
 TableModel getModel()
          Returns the TableModel that provides the data displayed by the receiver.
 Dimension getPreferredScrollableViewportSize()
          Returns the preferred size of the viewport for this table.
 int getRowCount()
          Returns the number of rows in the table.
 int getRowHeight()
          Returns the height of a table row in the receiver.
 int getRowMargin()
          Gets the amount of emtpy space between rows.
 boolean getRowSelectionAllowed()
          Returns true if rows can be selected.
 int getScrollableBlockIncrement(Rectangle visibleRect, int orientation, int direction)
          Returns The visibleRect.height or visibleRect.width, depending on the table's orientation.
 boolean getScrollableTracksViewportHeight()
          Returns false to indicate that the height of the viewport does not determine the height of the table.
 boolean getScrollableTracksViewportWidth()
          Returns false to indicate that the width of the viewport does not determine the width of the table.
 int getScrollableUnitIncrement(Rectangle visibleRect, int orientation, int direction)
          Returns the scroll increment that completely exposes one new row or column (depending on the orientation).
 int getSelectedColumn()
          Returns the index of the last column selected or added to the selection.
 int getSelectedColumnCount()
          Returns the number of selected columns.
 int[] getSelectedColumns()
          Returns the indices of all selected columns.
 int getSelectedRow()
          Returns the index of the last row selected or added to the selection.
 int getSelectedRowCount()
          Returns the number of selected rows.
 int[] getSelectedRows()
          Returns the indices of all selected rows.
 Color getSelectionBackground()
          Returns the background color for selected cells.
 Color getSelectionForeground()
          Returns the foreground color for selected cells.
 ListSelectionModel getSelectionModel()
          Returns the ListSelectionModel that is used to maintain row selection state.
 boolean getShowHorizontalLines()
          Returns true if the receiver draws horizontal lines between cells, false if it doesn't.
 boolean getShowVerticalLines()
          Returns true if the receiver draws vertical lines between cells, false if it doesn't.
 JTableHeader getTableHeader()
          Returns the tableHeader working with this JTable.
 String getToolTipText(MouseEvent event)
          Overrides JComponent's setToolTipText method to allow use of the renderer's tips (if the renderer has text set).
 TableUI getUI()
          Returns the L&F object that renders this component.
 String getUIClassID()
          Returns the name of the L&F class that renders this component.
 Object getValueAt(int row, int column)
          Returns the cell value at row and column.
protected  void initializeLocalVars()
          Initializes table properties to their default values.
 boolean isCellEditable(int row, int column)
          Returns true if the cell at row and column is editable.
 boolean isCellSelected(int row, int column)
          Returns true if the cell at the specified position is selected.
 boolean isColumnSelected(int column)
          Returns true if the column at the specified index is selected
 boolean isEditing()
          Returns true is the table is editing a cell.
 boolean isManagingFocus()
          We override this method, whose implementation in JComponent returns false, to return true.
 boolean isRowSelected(int row)
          Returns true if the row at the specified index is selected
 void moveColumn(int column, int targetColumn)
          Moves the column column to the position currently occupied by the column targetColumn.
protected  String paramString()
          Returns a string representation of this JTable.
 Component prepareEditor(TableCellEditor editor, int row, int column)
          Prepares the specified editor using the value at the specified cell.
 Component prepareRenderer(TableCellRenderer renderer, int row, int column)
          Prepares the specified renderer with an appropriate value from the dataModel, and an appropriate selection value from the selection models.
 void removeColumn(TableColumn aColumn)
          Removes aColumn from the JTable's array of columns.
 void removeColumnSelectionInterval(int index0, int index1)
          Deselects the columns from index0 to index0 inclusive.
 void removeEditor()
          Discard the editor object and return the real estate it used to cell rendering.
 void removeRowSelectionInterval(int index0, int index1)
          Deselects the rows from index0 to index0 inclusive.
 void reshape(int x, int y, int width, int height)
          Calls super.reshape(), and is overridden simply to detect changes in our bounds.
protected  void resizeAndRepaint()
          Equivalent to revalidate() followed by repaint().
 int rowAtPoint(Point point)
          Returns the index of the row that point lies in, or -1 if is not in the range [0, getRowCount()-1].
 void selectAll()
          Select all rows, columns and cells in the table.
 void setAutoCreateColumnsFromModel(boolean createColumns)
          Sets the table's autoCreateColumnsFromModel flag.
 void setAutoResizeMode(int mode)
          Sets the table's auto resize mode when the table is resized.
 void setCellEditor(TableCellEditor anEditor)
          Set the cellEditor variable.
 void setCellSelectionEnabled(boolean flag)
          Sets whether this table allows both a column selection and a row selection to exist at the same time.
 void setColumnModel(TableColumnModel newModel)
          Sets the column model for this table to newModel and registers with for listner notifications from the new column model.
 void setColumnSelectionAllowed(boolean flag)
          Sets whether the columns in this model can be selected.
 void setColumnSelectionInterval(int index0, int index1)
          Selects the columns from index0 to index1 inclusive.
 void setDefaultEditor(Class columnClass, TableCellEditor editor)
          Set a default editor to be used if no editor has been set in a TableColumn.
 void setDefaultRenderer(Class columnClass, TableCellRenderer renderer)
          Set a default renderer to be used if no renderer has been set in a TableColumn.
 void setEditingColumn(int aColumn)
          Set the editingColumn variable.
 void setEditingRow(int aRow)
          Set the editingRow variable.
 void setGridColor(Color newColor)
          Sets the color used to draw grid lines to color and redisplays the receiver.
 void setIntercellSpacing(Dimension newSpacing)
          Sets the width and height between cells to newSpacing and redisplays the receiver.
 void setModel(TableModel newModel)
          Sets the data model for this table to newModel and registers with for listner notifications from the new data model.
 void setPreferredScrollableViewportSize(Dimension size)
          Sets the preferred size of the viewport for this table.
 void setRowHeight(int newHeight)
          Sets the height for rows to newRowHeight and invokes tile
 void setRowMargin(int rowMargin)
          Sets the amount of emtpy space between rows.
 void setRowSelectionAllowed(boolean flag)
          Sets whether the rows in this model can be selected.
 void setRowSelectionInterval(int index0, int index1)
          Selects the rows from index0 to index1 inclusive.
 void setSelectionBackground(Color selectionBackground)
          Set the background color for selected cells.
 void setSelectionForeground(Color selectionForeground)
          Set the foreground color for selected cells.
 void setSelectionMode(int selectionMode)
          Sets the table's selection mode to allow only single selections, a single contiguous interval, or multiple intervals.
 void setSelectionModel(ListSelectionModel newModel)
          Sets the row selection model for this table to newModel and registers with for listner notifications from the new selection model.
 void setShowGrid(boolean b)
          Sets whether the receiver draws grid lines around cells.
 void setShowHorizontalLines(boolean b)
          Sets whether the receiver draws horizontal lines between cells.
 void setShowVerticalLines(boolean b)
          Sets whether the receiver draws vertical lines between cells.
 void setTableHeader(JTableHeader newHeader)
          Sets the tableHeader working with this JTable to newHeader.
 void setUI(TableUI ui)
          Sets the L&F object that renders this component.
 void setValueAt(Object aValue, int row, int column)
          Sets the value for the cell at row and column.
 void sizeColumnsToFit(boolean lastColumnOnly)
          Deprecated. As of Swing version 1.0.3, replaced by sizeColumnsToFit(int).
 void sizeColumnsToFit(int resizingColumn)
          This method will resize one or more ot the columns in the table so that the total width of all of the JTable's columns will be equal to the width of the table.
 void tableChanged(TableModelEvent e)
          The TableModelEvent should be constructed in the co-ordinate system of the model, the appropriate mapping to the view co-ordinate system is performed by the JTable when it recieves the event.
 void updateUI()
          Notification from the UIManager that the L&F has changed.
 void valueChanged(ListSelectionEvent e)
          Invoked when the selection changes -- repaints to show the new selection.
 
Methods inherited from class javax.swing.JComponent
addAncestorListener, addPropertyChangeListener, addVetoableChangeListener, computeVisibleRect, contains, createToolTip, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, fireVetoableChange, getActionForKeyStroke, getAlignmentX, getAlignmentY, getAutoscrolls, getBorder, getBounds, getClientProperty, getComponentGraphics, getConditionForKeyStroke, getDebugGraphicsOptions, getGraphics, getHeight, getInsets, getInsets, getLocation, getMaximumSize, getMinimumSize, getNextFocusableComponent, getPreferredSize, getRegisteredKeyStrokes, getRootPane, getSize, getToolTipLocation, getToolTipText, getTopLevelAncestor, getVisibleRect, getWidth, getX, getY, grabFocus, hasFocus, isDoubleBuffered, isFocusCycleRoot, isFocusTraversable, isLightweightComponent, isOpaque, isOptimizedDrawingEnabled, isPaintingTile, isRequestFocusEnabled, isValidateRoot, paint, paintBorder, paintChildren, paintComponent, paintImmediately, paintImmediately, processComponentKeyEvent, processFocusEvent, processKeyEvent, processMouseMotionEvent, putClientProperty, registerKeyboardAction, registerKeyboardAction, removeAncestorListener, removeNotify, removePropertyChangeListener, removeVetoableChangeListener, repaint, repaint, requestDefaultFocus, requestFocus, resetKeyboardActions, revalidate, scrollRectToVisible, setAlignmentX, setAlignmentY, setAutoscrolls, setBackground, setBorder, setDebugGraphicsOptions, setDoubleBuffered, setEnabled, setFont, setForeground, setMaximumSize, setMinimumSize, setNextFocusableComponent, setOpaque, setPreferredSize, setRequestFocusEnabled, setToolTipText, setUI, setVisible, unregisterKeyboardAction, update
 
Methods inherited from class java.awt.Container
add, add, add, add, add, addContainerListener, addImpl, countComponents, deliverEvent, doLayout, findComponentAt, findComponentAt, getComponent, getComponentAt, getComponentAt, getComponentCount, getComponents, getLayout, insets, invalidate, isAncestorOf, layout, list, list, locate, minimumSize, paintComponents, preferredSize, print, printComponents, processContainerEvent, processEvent, remove, remove, removeAll, removeContainerListener, setLayout, validate, validateTree
 
Methods inherited from class java.awt.Component
action, add, addComponentListener, addFocusListener, addInputMethodListener, addKeyListener, addMouseListener, addMouseMotionListener, addPropertyChangeListener, bounds, checkImage, checkImage, coalesceEvents, contains, createImage, createImage, disable, disableEvents, dispatchEvent, enable, enable, enableEvents, enableInputMethods, getBackground, getBounds, getColorModel, getComponentOrientation, getCursor, getDropTarget, getFont, getFontMetrics, getForeground, getInputContext, getInputMethodRequests, getLocale, getLocation, getLocationOnScreen, getName, getParent, getPeer, getSize, getToolkit, getTreeLock, gotFocus, handleEvent, hide, imageUpdate, inside, isDisplayable, isEnabled, isLightweight, isShowing, isValid, isVisible, keyDown, keyUp, list, list, list, location, lostFocus, mouseDown, mouseDrag, mouseEnter, mouseExit, mouseMove, mouseUp, move, nextFocus, paintAll, postEvent, prepareImage, prepareImage, printAll, processComponentEvent, processInputMethodEvent, processMouseEvent, remove, removeComponentListener, removeFocusListener, removeInputMethodListener, removeKeyListener, removeMouseListener, removeMouseMotionListener, removePropertyChangeListener, repaint, repaint, repaint, resize, resize, setBounds, setBounds, setComponentOrientation, setCursor, setDropTarget, setLocale, setLocation, setLocation, setName, setSize, setSize, show, show, size, toString, transferFocus
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Field Detail

AUTO_RESIZE_OFF

public static final int AUTO_RESIZE_OFF
Do not adjust column widths automatically, use a scrollbar

AUTO_RESIZE_NEXT_COLUMN

public static final int AUTO_RESIZE_NEXT_COLUMN
When a column is adjusted in the UI, adjust the next column the opposite way

AUTO_RESIZE_SUBSEQUENT_COLUMNS

public static final int AUTO_RESIZE_SUBSEQUENT_COLUMNS
During UI adjustment, change subsequent columns to preserve the total width

AUTO_RESIZE_LAST_COLUMN

public static final int AUTO_RESIZE_LAST_COLUMN
During all resize operations, apply adjustments to the last column only

AUTO_RESIZE_ALL_COLUMNS

public static final int AUTO_RESIZE_ALL_COLUMNS
During all resize operations, proportionately resize all columns

dataModel

protected TableModel dataModel
The TableModel of the table

columnModel

protected TableColumnModel columnModel
The TableColumnModel of the table

selectionModel

protected ListSelectionModel selectionModel
The ListSelectionModel of the table, used to keep track of row selections

tableHeader

protected JTableHeader tableHeader
The TableHeader working with the table

rowHeight

protected int rowHeight
The height of all rows in the table

rowMargin

protected int rowMargin
The height margin between rows

gridColor

protected Color gridColor
The color of the grid

showHorizontalLines

protected boolean showHorizontalLines
The table draws horizontal lines between cells if showHorizontalLines is true

showVerticalLines

protected boolean showVerticalLines
The table draws vertical lines between cells if showVerticalLines is true

autoResizeMode

protected int autoResizeMode
This mode value determines if table automatically resizes the width the table's columns to take up the entire width of the table, and how it does the resizing.

autoCreateColumnsFromModel

protected boolean autoCreateColumnsFromModel
The table will query the TableModel to build the default set of columns if this is true.

preferredViewportSize

protected Dimension preferredViewportSize
Used by the Scrollable interface to determine the initial visible area

rowSelectionAllowed

protected boolean rowSelectionAllowed
Row selection allowed in this table

cellSelectionEnabled

protected boolean cellSelectionEnabled
If this is true, then both a row selection and a column selection can be non-empty at the same time, the selected cells are the the cells whose row and column are both selected.

editorComp

protected transient Component editorComp
If editing, Component that is handling the editing.

cellEditor

protected transient TableCellEditor cellEditor
The object that overwrites the screen real estate occupied by the current cell and allows the user to change those contents.

editingColumn

protected transient int editingColumn
Identifies the column of the cell being edited.

editingRow

protected transient int editingRow
Identifies the row of the cell being edited.

defaultRenderersByColumnClass

protected transient Hashtable defaultRenderersByColumnClass
A table of objects that display the contents of a cell, indexed by class.

defaultEditorsByColumnClass

protected transient Hashtable defaultEditorsByColumnClass
A table of objects that display and edit the contents of a cell, indexed by class.

selectionForeground

protected Color selectionForeground
The foreground color of selected cells

selectionBackground

protected Color selectionBackground
The background color of selected cells
Constructor Detail

JTable

public JTable()
Constructs a default JTable which is initialized with a default data model, a default column model, and a default selection model.
See Also:
createDefaultDataModel(), createDefaultColumnModel(), createDefaultSelectionModel()

JTable

public JTable(TableModel dm)
Constructs a JTable which is initialized with dm as the data model, a default column model, and a default selection model.
Parameters:
dm - The data model for the table
See Also:
createDefaultColumnModel(), createDefaultSelectionModel()

JTable

public JTable(TableModel dm,
              TableColumnModel cm)
Constructs a JTable which is initialized with dm as the data model, cm as the column model, and a default selection model.
Parameters:
dm - The data model for the table
cm - The column model for the table
See Also:
createDefaultSelectionModel()

JTable

public JTable(TableModel dm,
              TableColumnModel cm,
              ListSelectionModel sm)
Constructs a JTable which is initialized with dm as the data model, cm as the column model, and sm as the selection model. If any of the parameters are null this method will initialize the table with the corresponding default model. The autoCreateColumnsFromModel flag is set to false if cm is non-null, otherwise it is set to true and the column model is populated with suitable TableColumns for the columns in dm.
Parameters:
dm - The data model for the table
cm - The column model for the table
sm - The row selection model for the table
See Also:
createDefaultDataModel(), createDefaultColumnModel(), createDefaultSelectionModel()

JTable

public JTable(int numRows,
              int numColumns)
Constructs a JTable with numRows and numColumns of empty cells using the DefaultTableModel. The columns will have names of the form "A", "B", "C", etc.
Parameters:
numRows - The number of rows the table holds
numColumns - The number of columns the table holds
See Also:
DefaultTableModel

JTable

public JTable(Vector rowData,
              Vector columnNames)
Constructs a JTable to display the values in the Vector of Vectors, rowData, with column names, columnNames. The Vectors contained in rowData should contain the values for that row. In other words, the value of the cell at row 1, column 5 can be obtained with the following code:

((Vector)rowData.elementAt(1)).elementAt(5);

All rows must be of the same length as columnNames.

Parameters:
rowData - The data for the new table
columnNames - Names of each column

JTable

public JTable(Object[][] rowData,
              Object[] columnNames)
Constructs a JTable to display the values in the two dimensional array, rowData, with column names, columnNames. rowData is an Array of rows, so the value of the cell at row 1, column 5 can be obtained with the following code:

 rowData[1][5]; 

All rows must be of the same length as columnNames.

Parameters:
rowData - The data for the new table
columnNames - Names of each column
Method Detail

addNotify

public void addNotify()
Calls configureEnclosingScrollPane.
Overrides:
addNotify in class JComponent
See Also:
configureEnclosingScrollPane()

configureEnclosingScrollPane

protected void configureEnclosingScrollPane()
If the JTable is the viewportView of an enclosing JScrollPane (the usual situation), configure this ScrollPane by, amongst other things, installing the table's tableHeader as the columnHeaderView of the scrollpane. When a JTable is added to a JScrollPane in the usual way, using new JScrollPane(myTable), addNotify is called in the JTable (when the table is added to the viewport). JTable's addNotify method in turn calls this method which is protected so that this default installation procedure can be overridden by a subclass.
See Also:
addNotify()

createScrollPaneForTable

public static JScrollPane createScrollPaneForTable(JTable aTable)
Deprecated. As of Swing version 1.0.2, replaced by new JScrollPane(aTable).
Equivalent to new JScrollPane(aTable).

setTableHeader

public void setTableHeader(JTableHeader newHeader)
Sets the tableHeader working with this JTable to newHeader. It is legal to have a null tableHeader.
Parameters:
newHeader - new tableHeader
See Also:
getTableHeader()

getTableHeader

public JTableHeader getTableHeader()
Returns the tableHeader working with this JTable.
Returns:
the tableHeader working with the receiver
See Also:
setTableHeader(javax.swing.table.JTableHeader)

setRowHeight

public void setRowHeight(int newHeight)
Sets the height for rows to newRowHeight and invokes tile
Parameters:
newRowHeight - new row height
Throws:
IllegalArgumentException - If newRowHeight is less than 1.
See Also:
getRowHeight()

getRowHeight

public int getRowHeight()
Returns the height of a table row in the receiver. The default row height is 16.0.
Returns:
the height of each row in the receiver
See Also:
setRowHeight(int)

setRowMargin

public void setRowMargin(int rowMargin)
Sets the amount of emtpy space between rows.
See Also:
getRowMargin()

getRowMargin

public int getRowMargin()
Gets the amount of emtpy space between rows. Equivalent to: getIntercellSpacing().height.
See Also:
setRowMargin(int)

setIntercellSpacing

public void setIntercellSpacing(Dimension newSpacing)
Sets the width and height between cells to newSpacing and redisplays the receiver.
Parameters:
newSpacing - The new width and height intercellSpacing
See Also:
getIntercellSpacing()

getIntercellSpacing

public Dimension getIntercellSpacing()
Returns the horizontal and vertical spacing between cells. The default spacing is (3, 2).
Returns:
the horizontal and vertical spacing between cells
See Also:
setIntercellSpacing(java.awt.Dimension)

setGridColor

public void setGridColor(Color newColor)
Sets the color used to draw grid lines to color and redisplays the receiver. The default color is gray.
Parameters:
color - new color of the grid
Throws:
IllegalArgumentException - if color is null
See Also:
getGridColor()

getGridColor

public Color getGridColor()
Returns the color used to draw grid lines. The default color is gray.
Returns:
the color used to draw grid lines
See Also:
setGridColor(java.awt.Color)

setShowGrid

public void setShowGrid(boolean b)
Sets whether the receiver draws grid lines around cells. If flag is true it does; if it is false it doesn't. There is no getShowGrid() method as t