public class DefaultTableColumnModel extends Object implements TableColumnModel, PropertyChangeListener, ListSelectionListener, Serializable
The standard column-handler for a 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
.
JTable
protected Vector<TableColumn> tableColumns
Array of TableColumn objects in this model
protected ListSelectionModel selectionModel
Model for keeping track of column selections
protected int columnMargin
Width margin between each column
protected EventListenerList listenerList
List of TableColumnModelListener
protected transient ChangeEvent changeEvent
Change event (only one needed)
protected boolean columnSelectionAllowed
Column selection allowed in this column model
protected int totalColumnWidth
A local cache of the combined width of all columns
public DefaultTableColumnModel()
Creates a default table column model.
public void addColumn(TableColumn aColumn)
Appends 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
removeColumn(javax.swing.table.TableColumn)
public void removeColumn(TableColumn column)
Deletes the 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 removedaddColumn(javax.swing.table.TableColumn)
public void moveColumn(int columnIndex, int newIndex)
Moves the column and heading at 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)
Sets the column margin to newMargin
. This method also posts a columnMarginChanged
event to its listeners.
setColumnMargin
in interface TableColumnModel
newMargin
- the new margin width, in pixelsgetColumnMargin()
, getTotalColumnWidth()
public int getColumnCount()
Returns the number of columns in the tableColumns
array.
getColumnCount
in interface TableColumnModel
tableColumns
arraygetColumns()
public Enumeration<TableColumn> getColumns()
Returns an Enumeration
of all the columns in the model.
getColumns
in interface TableColumnModel
Enumeration
of the columns in the modelpublic int getColumnIndex(Object identifier)
Returns the index of the first column in the 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
getColumn(int)
public TableColumn getColumn(int columnIndex)
Returns the TableColumn
object for the column at columnIndex
.
getColumn
in interface TableColumnModel
columnIndex
- the index of the column desiredTableColumn
object for the column at columnIndex
public int getColumnMargin()
Returns the width margin for TableColumn
. The default columnMargin
is 1.
getColumnMargin
in interface TableColumnModel
TableColumn
setColumnMargin(int)
public int getColumnIndexAtX(int x)
Returns the index of the column that lies at position 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 interestJTable.columnAtPoint(java.awt.Point)
public int getTotalColumnWidth()
Returns the total combined width of all columns.
getTotalColumnWidth
in interface TableColumnModel
totalColumnWidth
propertypublic void setSelectionModel(ListSelectionModel newModel)
Sets the selection model for this 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
getSelectionModel()
public ListSelectionModel getSelectionModel()
Returns the ListSelectionModel
that is used to maintain column selection state.
getSelectionModel
in interface TableColumnModel
null
if row selection is not allowed.setSelectionModel(javax.swing.ListSelectionModel)
public void setColumnSelectionAllowed(boolean flag)
Sets whether column selection is allowed. The default is false.
setColumnSelectionAllowed
in interface TableColumnModel
flag
- true if column selection will be allowed, false otherwiseTableColumnModel.getColumnSelectionAllowed()
public boolean getColumnSelectionAllowed()
Returns true if column selection is allowed, otherwise false. The default is false.
getColumnSelectionAllowed
in interface TableColumnModel
columnSelectionAllowed
propertyTableColumnModel.setColumnSelectionAllowed(boolean)
public int[] getSelectedColumns()
Returns an array of selected columns. If selectionModel
is null
, returns an empty array.
getSelectedColumns
in interface TableColumnModel
selectionModel
is null
public int getSelectedColumnCount()
Returns the number of columns selected.
getSelectedColumnCount
in interface TableColumnModel
public void addColumnModelListener(TableColumnModelListener x)
Adds a listener for table column model events.
addColumnModelListener
in interface TableColumnModel
x
- a TableColumnModelListener
objectpublic void removeColumnModelListener(TableColumnModelListener x)
Removes a listener for table column model events.
removeColumnModelListener
in interface TableColumnModel
x
- a TableColumnModelListener
objectpublic TableColumnModelListener[] getColumnModelListeners()
Returns an array of all the column model listeners registered on this model.
ColumnModelListener
s or an empty array if no column model listeners are currently registeredaddColumnModelListener(javax.swing.event.TableColumnModelListener)
, removeColumnModelListener(javax.swing.event.TableColumnModelListener)
protected void fireColumnAdded(TableColumnModelEvent e)
Notifies all listeners that have registered interest for notification on this event type. The event instance is lazily created using the parameters passed into the fire method.
e
- the event receivedEventListenerList
protected void fireColumnRemoved(TableColumnModelEvent e)
Notifies all listeners that have registered interest for notification on this event type. The event instance is lazily created using the parameters passed into the fire method.
e
- the event receivedEventListenerList
protected void fireColumnMoved(TableColumnModelEvent e)
Notifies all listeners that have registered interest for notification on this event type. The event instance is lazily created using the parameters passed into the fire method.
e
- the event receivedEventListenerList
protected void fireColumnSelectionChanged(ListSelectionEvent e)
Notifies all listeners that have registered interest for notification on this event type. The event instance is lazily created using the parameters passed into the fire method.
e
- the event receivedEventListenerList
protected void fireColumnMarginChanged()
Notifies all listeners that have registered interest for notification on this event type. The event instance is lazily created using the parameters passed into the fire method.
EventListenerList
public <T extends EventListener> T[] getListeners(Class<T> listenerType)
Returns an array of all the objects currently registered as FooListener
s upon this model. FooListener
s 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.
listenerType
- the type of listeners requested; this parameter should specify an interface that descends from java.util.EventListener
FooListener
s 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
getColumnModelListeners()
public void propertyChange(PropertyChangeEvent evt)
Property Change Listener change method. Used to track changes to the column width or preferred column width.
propertyChange
in interface PropertyChangeListener
evt
- PropertyChangeEvent
public void valueChanged(ListSelectionEvent e)
A ListSelectionListener
that forwards ListSelectionEvents
when there is a column selection change.
valueChanged
in interface ListSelectionListener
e
- the change eventprotected ListSelectionModel createSelectionModel()
Creates a new default list selection model.
protected void recalcWidthCache()
Recalculates the total combined width of all columns. Updates the totalColumnWidth
property.
© 1993–2017, 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.