|
|||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Objectjava.awt.Component
java.awt.Container
javax.swing.JComponent
javax.swing.JTable
de.tkuhn.swing.table.JUserFriendlyTable
public class JUserFriendlyTable
This subclass of JTable
provides the additional ability for the
user to hide/unhide its columns using a contextual menu of the table header
and further it supports sorting of the table's rows by column in ascending
and descending order. It also preserves the size of the columns, their
position and sorting state if a new TableModel
is set that is
similar to the old one.
In addition the column hiding state, size, position and sorting state can be
obtained as a Serializable
object to be made persistent.
Attention: This might not work between different versions of this class
Functionality is achieved by using the
ColumnStateTableColumnModel
and a
RowSortingTableModel
RowSortingTableModel
,
ColumnStateTableColumnModel
,
JTable
,
Serialized FormNested Class Summary |
---|
Nested classes/interfaces inherited from class javax.swing.JTable |
---|
javax.swing.JTable.AccessibleJTable, javax.swing.JTable.DropLocation, javax.swing.JTable.PrintMode |
Nested classes/interfaces inherited from class javax.swing.JComponent |
---|
javax.swing.JComponent.AccessibleJComponent |
Nested classes/interfaces inherited from class java.awt.Container |
---|
java.awt.Container.AccessibleAWTContainer |
Nested classes/interfaces inherited from class java.awt.Component |
---|
java.awt.Component.AccessibleAWTComponent, java.awt.Component.BaselineResizeBehavior, java.awt.Component.BltBufferStrategy, java.awt.Component.FlipBufferStrategy |
Field Summary |
---|
Fields inherited from class javax.swing.JTable |
---|
AUTO_RESIZE_ALL_COLUMNS, AUTO_RESIZE_LAST_COLUMN, AUTO_RESIZE_NEXT_COLUMN, AUTO_RESIZE_OFF, AUTO_RESIZE_SUBSEQUENT_COLUMNS, autoCreateColumnsFromModel, autoResizeMode, cellEditor, cellSelectionEnabled, dataModel, defaultEditorsByColumnClass, defaultRenderersByColumnClass, editingColumn, editingRow, editorComp, gridColor, preferredViewportSize, rowHeight, rowMargin, rowSelectionAllowed, selectionBackground, selectionForeground, selectionModel, showHorizontalLines, showVerticalLines, tableHeader |
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 |
Fields inherited from interface java.awt.image.ImageObserver |
---|
ABORT, ALLBITS, ERROR, FRAMEBITS, HEIGHT, PROPERTIES, SOMEBITS, WIDTH |
Constructor Summary | |
---|---|
JUserFriendlyTable()
Constructs a default JUserFriendlyTable that is initialized
with a default data model, a default column model, and a default
selection model. |
|
JUserFriendlyTable(int numRows,
int numColumns)
Constructs a JUserFriendlyTable with numRows
and numColumns of empty cells using
DefaultTableModel . |
|
JUserFriendlyTable(java.lang.Object[][] rowData,
java.lang.Object[] columnNames)
Constructs a JUserFriendlyTable to display the values in the
two dimensional array, rowData , with column names,
columnNames . |
|
JUserFriendlyTable(javax.swing.table.TableModel tableModel)
Constructs a JUserFriendlyTable that is initialized with
tableModel as the data model, a default column model, and a
default selection model. |
|
JUserFriendlyTable(javax.swing.table.TableModel tableModel,
javax.swing.ListSelectionModel selectionModel)
Constructs a JUserFriendlyTable that is initialized with
tableModel as the data model, and
selectionModel as the selection model. |
|
JUserFriendlyTable(java.util.Vector<?> rowData,
java.util.Vector<?> columnNames)
Constructs a JUserFriendlyTable to display the values in the
Vector of Vectors , rowData , with
column names, columnNames . |
Method Summary | |
---|---|
void |
balanceColumns()
Balance the width of the table columns based on their content. |
protected javax.swing.table.TableColumnModel |
createDefaultColumnModel()
This method must not be called directly by user! |
javax.swing.table.TableModel |
getModel()
Since this subclass uses a RowSortingTableModel to provide
row order the returned TableModel is an instance of that
class. |
java.lang.Object |
getState()
Creates a Memento of the state of this table. |
javax.swing.table.TableModel |
getUnsortedModel()
Return the raw unsorted data of this table that is sorted by this JUserFriendlyTable 's RowSortingTableModel . |
boolean |
isStatePreserving()
Is the table preserving the column state on a model change or just balancing columns? |
void |
setModel(javax.swing.table.TableModel aModel)
Sets a new TableModel for this table. |
boolean |
setState(java.lang.Object state)
Resets this table to the given state if the TableModel is
similar to the model present when getState() was called. |
void |
setStatePreserving(boolean statePreserving)
Set if the table should preserve column state on a model change or just balance columns. |
void |
tableChanged(javax.swing.event.TableModelEvent tme)
This method must not be called directly by user! |
Methods inherited from class javax.swing.JTable |
---|
addColumn, addColumnSelectionInterval, addNotify, addRowSelectionInterval, changeSelection, clearSelection, columnAdded, columnAtPoint, columnMarginChanged, columnMoved, columnRemoved, columnSelectionChanged, configureEnclosingScrollPane, convertColumnIndexToModel, convertColumnIndexToView, convertRowIndexToModel, convertRowIndexToView, createDefaultColumnsFromModel, createDefaultDataModel, createDefaultEditors, createDefaultRenderers, createDefaultSelectionModel, createDefaultTableHeader, createScrollPaneForTable, doLayout, editCellAt, editCellAt, editingCanceled, editingStopped, getAccessibleContext, getAutoCreateColumnsFromModel, getAutoCreateRowSorter, getAutoResizeMode, getCellEditor, getCellEditor, getCellRect, getCellRenderer, getCellSelectionEnabled, getColumn, getColumnClass, getColumnCount, getColumnModel, getColumnName, getColumnSelectionAllowed, getDefaultEditor, getDefaultRenderer, getDragEnabled, getDropLocation, getDropMode, getEditingColumn, getEditingRow, getEditorComponent, getFillsViewportHeight, getGridColor, getIntercellSpacing, getPreferredScrollableViewportSize, getPrintable, getRowCount, getRowHeight, getRowHeight, getRowMargin, getRowSelectionAllowed, getRowSorter, getScrollableBlockIncrement, getScrollableTracksViewportHeight, getScrollableTracksViewportWidth, getScrollableUnitIncrement, getSelectedColumn, getSelectedColumnCount, getSelectedColumns, getSelectedRow, getSelectedRowCount, getSelectedRows, getSelectionBackground, getSelectionForeground, getSelectionModel, getShowHorizontalLines, getShowVerticalLines, getSurrendersFocusOnKeystroke, getTableHeader, getToolTipText, getUI, getUIClassID, getUpdateSelectionOnSort, getValueAt, initializeLocalVars, isCellEditable, isCellSelected, isColumnSelected, isEditing, isRowSelected, moveColumn, paramString, prepareEditor, prepareRenderer, print, print, print, print, print, processKeyBinding, removeColumn, removeColumnSelectionInterval, removeEditor, removeNotify, removeRowSelectionInterval, resizeAndRepaint, rowAtPoint, selectAll, setAutoCreateColumnsFromModel, setAutoCreateRowSorter, setAutoResizeMode, setCellEditor, setCellSelectionEnabled, setColumnModel, setColumnSelectionAllowed, setColumnSelectionInterval, setDefaultEditor, setDefaultRenderer, setDragEnabled, setDropMode, setEditingColumn, setEditingRow, setFillsViewportHeight, setGridColor, setIntercellSpacing, setPreferredScrollableViewportSize, setRowHeight, setRowHeight, setRowMargin, setRowSelectionAllowed, setRowSelectionInterval, setRowSorter, setSelectionBackground, setSelectionForeground, setSelectionMode, setSelectionModel, setShowGrid, setShowHorizontalLines, setShowVerticalLines, setSurrendersFocusOnKeystroke, setTableHeader, setUI, setUpdateSelectionOnSort, setValueAt, sizeColumnsToFit, sizeColumnsToFit, sorterChanged, unconfigureEnclosingScrollPane, updateUI, valueChanged |
Methods inherited from class javax.swing.JComponent |
---|
addAncestorListener, addVetoableChangeListener, computeVisibleRect, contains, createToolTip, disable, enable, firePropertyChange, firePropertyChange, firePropertyChange, fireVetoableChange, getActionForKeyStroke, getActionMap, getAlignmentX, getAlignmentY, getAncestorListeners, getAutoscrolls, getBaseline, getBaselineResizeBehavior, getBorder, getBounds, getClientProperty, getComponentGraphics, getComponentPopupMenu, getConditionForKeyStroke, getDebugGraphicsOptions, getDefaultLocale, getFontMetrics, getGraphics, getHeight, getInheritsPopupMenu, getInputMap, getInputMap, getInputVerifier, getInsets, getInsets, getListeners, getLocation, getMaximumSize, getMinimumSize, getNextFocusableComponent, getPopupLocation, getPreferredSize, getRegisteredKeyStrokes, getRootPane, getSize, getToolTipLocation, getToolTipText, getTopLevelAncestor, getTransferHandler, getVerifyInputWhenFocusTarget, getVetoableChangeListeners, getVisibleRect, getWidth, getX, getY, grabFocus, isDoubleBuffered, isLightweightComponent, isManagingFocus, isOpaque, isOptimizedDrawingEnabled, isPaintingForPrint, isPaintingTile, isRequestFocusEnabled, isValidateRoot, paint, paintBorder, paintChildren, paintComponent, paintImmediately, paintImmediately, print, printAll, printBorder, printChildren, printComponent, processComponentKeyEvent, processKeyEvent, processMouseEvent, processMouseMotionEvent, putClientProperty, registerKeyboardAction, registerKeyboardAction, removeAncestorListener, removeVetoableChangeListener, repaint, repaint, requestDefaultFocus, requestFocus, requestFocus, requestFocusInWindow, requestFocusInWindow, resetKeyboardActions, reshape, revalidate, scrollRectToVisible, setActionMap, setAlignmentX, setAlignmentY, setAutoscrolls, setBackground, setBorder, setComponentPopupMenu, setDebugGraphicsOptions, setDefaultLocale, setDoubleBuffered, setEnabled, setFocusTraversalKeys, setFont, setForeground, setInheritsPopupMenu, setInputMap, setInputVerifier, setMaximumSize, setMinimumSize, setNextFocusableComponent, setOpaque, setPreferredSize, setRequestFocusEnabled, setToolTipText, setTransferHandler, setUI, setVerifyInputWhenFocusTarget, setVisible, unregisterKeyboardAction, update |
Methods inherited from class java.awt.Container |
---|
add, add, add, add, add, addContainerListener, addImpl, addPropertyChangeListener, addPropertyChangeListener, applyComponentOrientation, areFocusTraversalKeysSet, countComponents, deliverEvent, findComponentAt, findComponentAt, getComponent, getComponentAt, getComponentAt, getComponentCount, getComponents, getComponentZOrder, getContainerListeners, getFocusTraversalKeys, getFocusTraversalPolicy, getLayout, getMousePosition, insets, invalidate, isAncestorOf, isFocusCycleRoot, isFocusCycleRoot, isFocusTraversalPolicyProvider, isFocusTraversalPolicySet, layout, list, list, locate, minimumSize, paintComponents, preferredSize, printComponents, processContainerEvent, processEvent, remove, remove, removeAll, removeContainerListener, setComponentZOrder, setFocusCycleRoot, setFocusTraversalPolicy, setFocusTraversalPolicyProvider, setLayout, transferFocusBackward, transferFocusDownCycle, validate, validateTree |
Methods inherited from class java.awt.Component |
---|
action, add, addComponentListener, addFocusListener, addHierarchyBoundsListener, addHierarchyListener, addInputMethodListener, addKeyListener, addMouseListener, addMouseMotionListener, addMouseWheelListener, bounds, checkImage, checkImage, coalesceEvents, contains, createImage, createImage, createVolatileImage, createVolatileImage, disableEvents, dispatchEvent, enable, enableEvents, enableInputMethods, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, getBackground, getBounds, getColorModel, getComponentListeners, getComponentOrientation, getCursor, getDropTarget, getFocusCycleRootAncestor, getFocusListeners, getFocusTraversalKeysEnabled, getFont, getForeground, getGraphicsConfiguration, getHierarchyBoundsListeners, getHierarchyListeners, getIgnoreRepaint, getInputContext, getInputMethodListeners, getInputMethodRequests, getKeyListeners, getLocale, getLocation, getLocationOnScreen, getMouseListeners, getMouseMotionListeners, getMousePosition, getMouseWheelListeners, getName, getParent, getPeer, getPropertyChangeListeners, getPropertyChangeListeners, getSize, getToolkit, getTreeLock, gotFocus, handleEvent, hasFocus, hide, imageUpdate, inside, isBackgroundSet, isCursorSet, isDisplayable, isEnabled, isFocusable, isFocusOwner, isFocusTraversable, isFontSet, isForegroundSet, isLightweight, isMaximumSizeSet, isMinimumSizeSet, isPreferredSizeSet, isShowing, isValid, isVisible, keyDown, keyUp, list, list, list, location, lostFocus, mouseDown, mouseDrag, mouseEnter, mouseExit, mouseMove, mouseUp, move, nextFocus, paintAll, postEvent, prepareImage, prepareImage, processComponentEvent, processFocusEvent, processHierarchyBoundsEvent, processHierarchyEvent, processInputMethodEvent, processMouseWheelEvent, remove, removeComponentListener, removeFocusListener, removeHierarchyBoundsListener, removeHierarchyListener, removeInputMethodListener, removeKeyListener, removeMouseListener, removeMouseMotionListener, removeMouseWheelListener, removePropertyChangeListener, removePropertyChangeListener, repaint, repaint, repaint, resize, resize, setBounds, setBounds, setComponentOrientation, setCursor, setDropTarget, setFocusable, setFocusTraversalKeysEnabled, setIgnoreRepaint, setLocale, setLocation, setLocation, setName, setSize, setSize, show, show, size, toString, transferFocus, transferFocusUpCycle |
Methods inherited from class java.lang.Object |
---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait |
Constructor Detail |
---|
public JUserFriendlyTable()
JUserFriendlyTable
that is initialized
with a default data model, a default column model, and a default
selection model.
JTable.createDefaultDataModel()
,
createDefaultColumnModel()
,
JTable.createDefaultSelectionModel()
public JUserFriendlyTable(javax.swing.table.TableModel tableModel)
JUserFriendlyTable
that is initialized with
tableModel
as the data model, a default column model, and a
default selection model.
tableModel
- the data model for the tablecreateDefaultColumnModel()
,
JTable.createDefaultSelectionModel()
public JUserFriendlyTable(javax.swing.table.TableModel tableModel, javax.swing.ListSelectionModel selectionModel)
JUserFriendlyTable
that is initialized with
tableModel
as the data model, and
selectionModel
as the selection model. If any of the
parameters are null
this method will initialize the table
with the corresponding default model.
tableModel
- the data model for the tableselectionModel
- the row selection model for the tableJTable.createDefaultDataModel()
,
JTable.createDefaultSelectionModel()
public JUserFriendlyTable(int numRows, int numColumns)
JUserFriendlyTable
with numRows
and numColumns
of empty cells using
DefaultTableModel
. The columns will have names of the form
"A", "B", "C", etc.
numRows
- the number of rows the table holdsnumColumns
- the number of columns the table holdsDefaultTableModel
public JUserFriendlyTable(java.util.Vector<?> rowData, java.util.Vector<?> columnNames)
JUserFriendlyTable
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);
rowData
- the data for the new tablecolumnNames
- names of each columnpublic JUserFriendlyTable(java.lang.Object[][] rowData, java.lang.Object[] columnNames)
JUserFriendlyTable
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
.
rowData
- the data for the new tablecolumnNames
- names of each columnMethod Detail |
---|
public java.lang.Object getState()
Serializable
Interface. And can also be saved using
the XMLEncoder
.Serializable
,
XMLEncoder
public boolean setState(java.lang.Object state)
TableModel
is
similar to the model present when getState()
was called.
This method must be called with a state object obtained by
getState()
.
state
- the state to set.
getState()
protected javax.swing.table.TableColumnModel createDefaultColumnModel()
createDefaultColumnModel()
in JTable
createDefaultColumnModel
in class javax.swing.JTable
ColumnStateTableColumnModel
public void balanceColumns()
public void setModel(javax.swing.table.TableModel aModel)
TableModel
for this table. The
RowSortingTableModel
this table uses is not replaced. The
given model is set at the sorting model instead. In addition if the new
model is similar to the old one the column hiding, size, position state
and row sorting state are preserved.
setModel
in class javax.swing.JTable
aModel
- the new TableModel
to be usedpublic javax.swing.table.TableModel getModel()
RowSortingTableModel
to provide
row order the returned TableModel
is an instance of that
class. That does mean that getModel()
does not return
TableModel
instances set with setModel(model)
.
To obtain the 'real' data model you should use
getUnsortedModel()
getModel
in class javax.swing.JTable
RowSortingTableModel
used by this tablegetUnsortedModel()
public javax.swing.table.TableModel getUnsortedModel()
JUserFriendlyTable
's RowSortingTableModel
.
TableModel
used by this tablepublic void tableChanged(javax.swing.event.TableModelEvent tme)
tableChanged(event)
in the interface
TableModelListener
. Preserves the state of the
ColumnStateColumnModel
if the table structure changes and
forwards the event to its super class.
tableChanged
in interface javax.swing.event.TableModelListener
tableChanged
in class javax.swing.JTable
tme
- the event to processTableModelListener
public boolean isStatePreserving()
public void setStatePreserving(boolean statePreserving)
statePreserving
- New value of property statePreserving.
|
|||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |