PropertyChangeListener, Serializable, EventListener, ListSelectionListener, TableColumnModel
public class DefaultTableColumnModel extends Object implements TableColumnModel, PropertyChangeListener, ListSelectionListener, Serializable
JTable.  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. As of 1.4, support for long term storage of all JavaBeans has been added to the java.beans package. Please see XMLEncoder.
| Modifier and Type | Field | Description | 
|---|---|---|
| protected ChangeEvent | changeEvent | Change event (only one needed) | 
| protected int | columnMargin | Width margin between each column | 
| protected boolean | columnSelectionAllowed | Column selection allowed in this column model | 
| protected EventListenerList | listenerList | List of TableColumnModelListener | 
| protected ListSelectionModel | selectionModel | Model for keeping track of column selections | 
| protected Vector | tableColumns | Array of TableColumn objects in this model | 
| protected int | totalColumnWidth | A local cache of the combined width of all columns | 
| Constructor | Description | 
|---|---|
| DefaultTableColumnModel() | Creates a default table column model. | 
| Modifier and Type | Method | Description | 
|---|---|---|
| void | addColumn | Appends  aColumnto the end of thetableColumnsarray. | 
| void | addColumnModelListener | Adds a listener for table column model events. | 
| protected ListSelectionModel | createSelectionModel() | Creates a new default list selection model. | 
| protected void | fireColumnAdded | Notifies all listeners that have registered interest for notification on this event type. | 
| protected void | fireColumnMarginChanged() | Notifies all listeners that have registered interest for notification on this event type. | 
| protected void | fireColumnMoved | Notifies all listeners that have registered interest for notification on this event type. | 
| protected void | fireColumnRemoved | Notifies all listeners that have registered interest for notification on this event type. | 
| protected void | fireColumnSelectionChanged | Notifies all listeners that have registered interest for notification on this event type. | 
| TableColumn | getColumn | Returns the  TableColumnobject for the column atcolumnIndex. | 
| int | getColumnCount() | Returns the number of columns in the  tableColumnsarray. | 
| int | getColumnIndex | Returns the index of the first column in the  tableColumnsarray whose identifier is equal toidentifier, when compared usingequals. | 
| int | getColumnIndexAtX | Returns the index of the column that lies at position  x, or -1 if no column covers this point. | 
| int | getColumnMargin() | Returns the width margin for  TableColumn. | 
| TableColumnModelListener[] | getColumnModelListeners() | Returns an array of all the column model listeners registered on this model. | 
| Enumeration | getColumns() | Returns an  Enumerationof all the columns in the model. | 
| boolean | getColumnSelectionAllowed() | Returns true if column selection is allowed, otherwise false. | 
| <T extends EventListener> | getListeners | Returns an array of all the objects currently registered as  FooListeners upon this model. | 
| int | getSelectedColumnCount() | Returns the number of columns selected. | 
| int[] | getSelectedColumns() | Returns an array of selected columns. | 
| ListSelectionModel | getSelectionModel() | Returns the  ListSelectionModelthat is used to maintain column selection state. | 
| int | getTotalColumnWidth() | Returns the total combined width of all columns. | 
| void | moveColumn | Moves the column and heading at  columnIndextonewIndex. | 
| void | propertyChange | Property Change Listener change method. | 
| protected void | recalcWidthCache() | Recalculates the total combined width of all columns. | 
| void | removeColumn | Deletes the  columnfrom thetableColumnsarray. | 
| void | removeColumnModelListener | Removes a listener for table column model events. | 
| void | setColumnMargin | Sets the column margin to  newMargin. | 
| void | setColumnSelectionAllowed | Sets whether column selection is allowed. | 
| void | setSelectionModel | Sets the selection model for this  TableColumnModeltonewModeland registers for listener notifications from the new selection model. | 
| void | valueChanged | A  ListSelectionListenerthat forwardsListSelectionEventswhen there is a column selection change. | 
protected Vector<TableColumn> tableColumns
protected ListSelectionModel selectionModel
protected int columnMargin
protected EventListenerList listenerList
protected transient ChangeEvent changeEvent
protected boolean columnSelectionAllowed
protected int totalColumnWidth
public DefaultTableColumnModel()
public void addColumn(TableColumn aColumn)
aColumn to the end of the tableColumns array. This method also posts the columnAdded event to its listeners.addColumn in interface TableColumnModel
aColumn - the TableColumn to be addedIllegalArgumentException - if aColumn is null
public void removeColumn(TableColumn column)
column from the tableColumns array. This method will do nothing if column is not in the table's columns list. tile is called to resize both the header and table views. This method also posts a columnRemoved event to its listeners.removeColumn in interface TableColumnModel
column - the TableColumn to be removedpublic void moveColumn(int columnIndex, int newIndex)
columnIndex to newIndex. The old column at columnIndex will now be found at newIndex. The column that used to be at newIndex is shifted left or right to make room. This will not move any columns if columnIndex equals newIndex. This method also posts a columnMoved event to its listeners.moveColumn in interface TableColumnModel
columnIndex - the index of column to be movednewIndex - new index to move the columnIllegalArgumentException - if column or newIndex are not in the valid rangepublic void setColumnMargin(int newMargin)
newMargin. This method also posts a columnMarginChanged event to its listeners.setColumnMargin in interface TableColumnModel
newMargin - the new margin width, in pixelspublic int getColumnCount()
tableColumns array.getColumnCount in interface TableColumnModel
tableColumns arraypublic Enumeration<TableColumn> getColumns()
Enumeration of all the columns in the model.getColumns in interface TableColumnModel
Enumeration of the columns in the modelpublic int getColumnIndex(Object identifier)
tableColumns array whose identifier is equal to identifier, when compared using equals.getColumnIndex in interface TableColumnModel
identifier - the identifier objecttableColumns array whose identifier is equal to identifier
IllegalArgumentException - if identifier is null, or if no TableColumn has this identifier
public TableColumn getColumn(int columnIndex)
TableColumn object for the column at columnIndex.getColumn in interface TableColumnModel
columnIndex - the index of the column desiredTableColumn object for the column at columnIndex
ArrayIndexOutOfBoundsException - if columnIndex is out of range: (columnIndex < 0 || columnIndex >= getColumnCount())public int getColumnMargin()
TableColumn. The default columnMargin is 1.getColumnMargin in interface TableColumnModel
TableColumn
public int getColumnIndexAtX(int x)
x, or -1 if no column covers this point. In keeping with Swing's separable model architecture, a TableColumnModel does not know how the table columns actually appear on screen. The visual presentation of the columns is the responsibility of the view/controller object using this model (typically JTable). The view/controller need not display the columns sequentially from left to right. For example, columns could be displayed from right to left to accommodate a locale preference or some columns might be hidden at the request of the user. Because the model does not know how the columns are laid out on screen, the given xPosition should not be considered to be a coordinate in 2D graphics space. Instead, it should be considered to be a width from the start of the first column in the model. If the column index for a given X coordinate in 2D space is required, JTable.columnAtPoint can be used instead.getColumnIndexAtX in interface TableColumnModel
x - the horizontal location of interestpublic int getTotalColumnWidth()
getTotalColumnWidth in interface TableColumnModel
totalColumnWidth propertypublic void setSelectionModel(ListSelectionModel newModel)
TableColumnModel to newModel and registers for listener notifications from the new selection model. If newModel is null, an exception is thrown.setSelectionModel in interface TableColumnModel
newModel - the new selection modelIllegalArgumentException - if newModel is null
public ListSelectionModel getSelectionModel()
ListSelectionModel that is used to maintain column selection state.getSelectionModel in interface TableColumnModel
null if row selection is not allowed.public void setColumnSelectionAllowed(boolean flag)
setColumnSelectionAllowed in interface TableColumnModel
flag - true if column selection will be allowed, false otherwisepublic boolean getColumnSelectionAllowed()
getColumnSelectionAllowed in interface TableColumnModel
columnSelectionAllowed propertypublic int[] getSelectedColumns()
selectionModel is null, returns an empty array.getSelectedColumns in interface TableColumnModel
selectionModel is null
public int getSelectedColumnCount()
getSelectedColumnCount in interface TableColumnModel
public void addColumnModelListener(TableColumnModelListener x)
addColumnModelListener in interface TableColumnModel
x - a TableColumnModelListener objectpublic void removeColumnModelListener(TableColumnModelListener x)
removeColumnModelListener in interface TableColumnModel
x - a TableColumnModelListener objectpublic TableColumnModelListener[] getColumnModelListeners()
ColumnModelListeners or an empty array if no column model listeners are currently registeredprotected void fireColumnAdded(TableColumnModelEvent e)
e - the event receivedprotected void fireColumnRemoved(TableColumnModelEvent e)
e - the event receivedprotected void fireColumnMoved(TableColumnModelEvent e)
e - the event receivedprotected void fireColumnSelectionChanged(ListSelectionEvent e)
e - the event receivedprotected void fireColumnMarginChanged()
public <T extends EventListener> T[] getListeners(Class<T> listenerType)
FooListeners upon this model. FooListeners are registered using the addFooListener method.  You can specify the listenerType argument with a class literal, such as FooListener.class. For example, you can query a DefaultTableColumnModel m for its column model listeners with the following code: 
ColumnModelListener[] cmls = (ColumnModelListener[])(m.getListeners(ColumnModelListener.class));If no such listeners exist, this method returns an empty array.
T - the listener typelistenerType - the type of listeners requestedFooListeners on this model, or an empty array if no such listeners have been addedClassCastException - if listenerType doesn't specify a class or interface that implements java.util.EventListener
public void propertyChange(PropertyChangeEvent evt)
propertyChange in interface PropertyChangeListener
evt - PropertyChangeEvent
public void valueChanged(ListSelectionEvent e)
ListSelectionListener that forwards ListSelectionEvents when there is a column selection change.valueChanged in interface ListSelectionListener
e - the change eventprotected ListSelectionModel createSelectionModel()
protected void recalcWidthCache()
totalColumnWidth property.
    © 1993, 2023, Oracle and/or its affiliates. All rights reserved.
Documentation extracted from Debian's OpenJDK Development Kit package.
Licensed under the GNU General Public License, version 2, with the Classpath Exception.
Various third party code in OpenJDK is licensed under different licenses (see Debian package).
Java and OpenJDK are trademarks or registered trademarks of Oracle and/or its affiliates.
    https://docs.oracle.com/en/java/javase/21/docs/api/java.desktop/javax/swing/table/DefaultTableColumnModel.html