common.gui
Class HelpfulJTable

java.lang.Object
  extended byjava.awt.Component
      extended byjava.awt.Container
          extended byjavax.swing.JComponent
              extended byjavax.swing.JTable
                  extended bycommon.gui.HelpfulJTable
All Implemented Interfaces:
javax.accessibility.Accessible, javax.swing.event.CellEditorListener, java.util.EventListener, java.awt.image.ImageObserver, javax.swing.event.ListSelectionListener, java.awt.MenuContainer, javax.swing.Scrollable, java.io.Serializable, javax.swing.event.TableColumnModelListener, javax.swing.event.TableModelListener

public class HelpfulJTable
extends javax.swing.JTable

An extension of the default Swing JTable, that passes action key events, displays tooltips and autoresizes columns.

In detail, the following features are provided:

Only the default constructor of JTable is provided. Please use setModel(TableModel) to set another model.

Author:
Dirk Moebius
See Also:
Serialized Form

Nested Class Summary
 
Nested classes inherited from class javax.swing.JTable
javax.swing.JTable.AccessibleJTable
 
Nested classes inherited from class javax.swing.JComponent
javax.swing.JComponent.AccessibleJComponent
 
Nested classes inherited from class java.awt.Container
java.awt.Container.AccessibleAWTContainer
 
Nested classes inherited from class java.awt.Component
java.awt.Component.AccessibleAWTComponent, java.awt.Component.BltBufferStrategy, java.awt.Component.FlipBufferStrategy
 
Field Summary
static int SORT_ASCENDING
           
static int SORT_DESCENDING
           
static int SORT_OFF
           
 
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, columnModel, 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
HelpfulJTable()
           
 
Method Summary
 void addActionListener(java.awt.event.ActionListener l)
          Add an action listener to this table instance.
 void autosizeColumn(int col)
          Autosizes the specified column to the width of its longest cell.
 void changeSelection(int rowIndex, int columnIndex, boolean toggle, boolean extend)
          Overwritten to autoscroll only vertically, not horizontally.
protected  void fireActionEvent(java.awt.event.ActionEvent evt)
          This method is invoked if the user pressed Enter, Tab or Shift-Tab on the table.
 boolean getAutoResizeColumns()
          Return the value of the autoResizeColumns property.
 boolean getAutoResizeWithHeaders()
          Return the value of the autoResizeWithHeaders property.
protected  java.awt.Component getCellRendererComponent(int row, int col)
          Return the cell renderer component for the cell at (row,col).
protected  java.awt.Component getHeaderRendererComponent(int col)
          Return the header renderer component for the header at (col).
 int getSortColumn()
           
 int getSortOrder()
           
 java.awt.Point getToolTipLocation(java.awt.event.MouseEvent evt)
          Overridden to return null, if the cell is fully visible, so that ToolTips are only displayed if the cell is partially hidden.
 java.lang.String getToolTipText(java.awt.event.MouseEvent evt)
          Overridden to return null, if the cell is fully visible, so that ToolTips are only displayed if the cell is partially hidden.
 void removeActionListener(java.awt.event.ActionListener l)
          Remove an action listener from this table instance.
 void setAutoResizeColumns(boolean state)
          If true, columns are autoresized according to the largest display width of their contents.
 void setAutoResizeMode(int mode)
          Overridden, so that any attempts to set a mode other than AUTO_RESIZE_OFF are ignored, if autoResizeColumns is on.
 void setAutoResizeWithHeaders(boolean state)
          If true, columns are autoresizing takes headers into account
 void setColumnModel(javax.swing.table.TableColumnModel tcm)
          Set a new column model.
 void setSortColumn(int sortColumn)
          Set the sort column.
 void setSortOrder(int order)
          Set whether the current sortColumn should be sorted ascending or descending, or not at all.
 void setTableHeader(javax.swing.table.JTableHeader th)
          Overridden, so that any attempts to set a TableHeader with resizingAllowed = true is set back to false.
 void tableChanged(javax.swing.event.TableModelEvent e)
          Invoked when the table data has changed, this method autoresizes all columns to its longest content length, if autoResizeColumns is on.
 
Methods inherited from class javax.swing.JTable
addColumn, addColumnSelectionInterval, addNotify, addRowSelectionInterval, clearSelection, columnAdded, columnAtPoint, columnMarginChanged, columnMoved, columnRemoved, columnSelectionChanged, configureEnclosingScrollPane, convertColumnIndexToModel, convertColumnIndexToView, createDefaultColumnModel, createDefaultColumnsFromModel, createDefaultDataModel, createDefaultEditors, createDefaultRenderers, createDefaultSelectionModel, createDefaultTableHeader, createScrollPaneForTable, doLayout, editCellAt, editCellAt, editingCanceled, editingStopped, getAccessibleContext, getAutoCreateColumnsFromModel, getAutoResizeMode, getCellEditor, getCellEditor, getCellRect, getCellRenderer, getCellSelectionEnabled, getColumn, getColumnClass, getColumnCount, getColumnModel, getColumnName, getColumnSelectionAllowed, getDefaultEditor, getDefaultRenderer, getDragEnabled, getEditingColumn, getEditingRow, getEditorComponent, getGridColor, getIntercellSpacing, getModel, getPreferredScrollableViewportSize, getRowCount, getRowHeight, getRowHeight, getRowMargin, getRowSelectionAllowed, getScrollableBlockIncrement, getScrollableTracksViewportHeight, getScrollableTracksViewportWidth, getScrollableUnitIncrement, getSelectedColumn, getSelectedColumnCount, getSelectedColumns, getSelectedRow, getSelectedRowCount, getSelectedRows, getSelectionBackground, getSelectionForeground, getSelectionModel, getShowHorizontalLines, getShowVerticalLines, getSurrendersFocusOnKeystroke, getTableHeader, getUI, getUIClassID, getValueAt, initializeLocalVars, isCellEditable, isCellSelected, isColumnSelected, isEditing, isRowSelected, moveColumn, paramString, prepareEditor, prepareRenderer, processKeyBinding, removeColumn, removeColumnSelectionInterval, removeEditor, removeNotify, removeRowSelectionInterval, resizeAndRepaint, rowAtPoint, selectAll, setAutoCreateColumnsFromModel, setCellEditor, setCellSelectionEnabled, setColumnSelectionAllowed, setColumnSelectionInterval, setDefaultEditor, setDefaultRenderer, setDragEnabled, setEditingColumn, setEditingRow, setGridColor, setIntercellSpacing, setModel, setPreferredScrollableViewportSize, setRowHeight, setRowHeight, setRowMargin, setRowSelectionAllowed, setRowSelectionInterval, setSelectionBackground, setSelectionForeground, setSelectionMode, setSelectionModel, setShowGrid, setShowHorizontalLines, setShowVerticalLines, setSurrendersFocusOnKeystroke, setUI, setValueAt, sizeColumnsToFit, sizeColumnsToFit, unconfigureEnclosingScrollPane, updateUI, valueChanged
 
Methods inherited from class javax.swing.JComponent
addAncestorListener, addPropertyChangeListener, addPropertyChangeListener, addVetoableChangeListener, computeVisibleRect, contains, createToolTip, disable, enable, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, fireVetoableChange, getActionForKeyStroke, getActionMap, getAlignmentX, getAlignmentY, getAncestorListeners, getAutoscrolls, getBorder, getBounds, getClientProperty, getComponentGraphics, getConditionForKeyStroke, getDebugGraphicsOptions, getDefaultLocale, getGraphics, getHeight, getInputMap, getInputMap, getInputVerifier, getInsets, getInsets, getListeners, getLocation, getMaximumSize, getMinimumSize, getNextFocusableComponent, getPreferredSize, getPropertyChangeListeners, getPropertyChangeListeners, getRegisteredKeyStrokes, getRootPane, getSize, getToolTipText, getTopLevelAncestor, getTransferHandler, getVerifyInputWhenFocusTarget, getVetoableChangeListeners, getVisibleRect, getWidth, getX, getY, grabFocus, isDoubleBuffered, isLightweightComponent, isManagingFocus, isMaximumSizeSet, isMinimumSizeSet, isOpaque, isOptimizedDrawingEnabled, isPaintingTile, isPreferredSizeSet, isRequestFocusEnabled, isValidateRoot, paint, paintBorder, paintChildren, paintComponent, paintImmediately, paintImmediately, print, printAll, printBorder, printChildren, printComponent, processComponentKeyEvent, processKeyEvent, processMouseMotionEvent, putClientProperty, registerKeyboardAction, registerKeyboardAction, removeAncestorListener, removePropertyChangeListener, removePropertyChangeListener, removeVetoableChangeListener, repaint, repaint, requestDefaultFocus, requestFocus, requestFocus, requestFocusInWindow, requestFocusInWindow, resetKeyboardActions, reshape, revalidate, scrollRectToVisible, setActionMap, setAlignmentX, setAlignmentY, setAutoscrolls, setBackground, setBorder, setDebugGraphicsOptions, setDefaultLocale, setDoubleBuffered, setEnabled, setFont, setForeground, 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, applyComponentOrientation, areFocusTraversalKeysSet, countComponents, deliverEvent, findComponentAt, findComponentAt, getComponent, getComponentAt, getComponentAt, getComponentCount, getComponents, getContainerListeners, getFocusTraversalKeys, getFocusTraversalPolicy, getLayout, insets, invalidate, isAncestorOf, isFocusCycleRoot, isFocusCycleRoot, isFocusTraversalPolicySet, layout, list, list, locate, minimumSize, paintComponents, preferredSize, printComponents, processContainerEvent, processEvent, remove, remove, removeAll, removeContainerListener, setFocusCycleRoot, setFocusTraversalKeys, setFocusTraversalPolicy, 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, getBackground, getBounds, getColorModel, getComponentListeners, getComponentOrientation, getCursor, getDropTarget, getFocusCycleRootAncestor, getFocusListeners, getFocusTraversalKeysEnabled, getFont, getFontMetrics, getForeground, getGraphicsConfiguration, getHierarchyBoundsListeners, getHierarchyListeners, getIgnoreRepaint, getInputContext, getInputMethodListeners, getInputMethodRequests, getKeyListeners, getLocale, getLocation, getLocationOnScreen, getMouseListeners, getMouseMotionListeners, getMouseWheelListeners, getName, getParent, getPeer, getSize, getToolkit, getTreeLock, gotFocus, handleEvent, hasFocus, hide, imageUpdate, inside, isBackgroundSet, isCursorSet, isDisplayable, isEnabled, isFocusable, isFocusOwner, isFocusTraversable, isFontSet, isForegroundSet, isLightweight, 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, processMouseEvent, processMouseWheelEvent, remove, removeComponentListener, removeFocusListener, removeHierarchyBoundsListener, removeHierarchyListener, removeInputMethodListener, removeKeyListener, removeMouseListener, removeMouseMotionListener, removeMouseWheelListener, 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
 

Field Detail

SORT_OFF

public static final int SORT_OFF
See Also:
Constant Field Values

SORT_ASCENDING

public static final int SORT_ASCENDING
See Also:
Constant Field Values

SORT_DESCENDING

public static final int SORT_DESCENDING
See Also:
Constant Field Values
Constructor Detail

HelpfulJTable

public HelpfulJTable()
Method Detail

setAutoResizeColumns

public void setAutoResizeColumns(boolean state)
If true, columns are autoresized according to the largest display width of their contents.

Parameters:
state - whether autoresize is enabled or disabled.

getAutoResizeColumns

public boolean getAutoResizeColumns()
Return the value of the autoResizeColumns property. The default is true.


setAutoResizeWithHeaders

public void setAutoResizeWithHeaders(boolean state)
If true, columns are autoresizing takes headers into account

Parameters:
state - whether autoresize with headers is enabled or disabled.

getAutoResizeWithHeaders

public boolean getAutoResizeWithHeaders()
Return the value of the autoResizeWithHeaders property. The default is true.


setSortColumn

public void setSortColumn(int sortColumn)
Set the sort column. This is a bound bean property.

Parameters:
sortColumn - the new sortColumn value.

getSortColumn

public int getSortColumn()

setSortOrder

public void setSortOrder(int order)
Set whether the current sortColumn should be sorted ascending or descending, or not at all.

This is a bound bean property named "sortOrder". If it is changed, a PropertyChangeEvent gets fired.

Parameters:
order - the new sort order, one of SORT_ASCENDING, SORT_DESCENDING, SORT_OFF.

getSortOrder

public int getSortOrder()

setAutoResizeMode

public void setAutoResizeMode(int mode)
Overridden, so that any attempts to set a mode other than AUTO_RESIZE_OFF are ignored, if autoResizeColumns is on.


setTableHeader

public void setTableHeader(javax.swing.table.JTableHeader th)
Overridden, so that any attempts to set a TableHeader with resizingAllowed = true is set back to false.


setColumnModel

public void setColumnModel(javax.swing.table.TableColumnModel tcm)
Set a new column model. This implementation also sets new header renderers that display the current sort column with a small icon.


addActionListener

public void addActionListener(java.awt.event.ActionListener l)
Add an action listener to this table instance.


removeActionListener

public void removeActionListener(java.awt.event.ActionListener l)
Remove an action listener from this table instance.


getToolTipText

public final java.lang.String getToolTipText(java.awt.event.MouseEvent evt)
Overridden to return null, if the cell is fully visible, so that ToolTips are only displayed if the cell is partially hidden.


getToolTipLocation

public final java.awt.Point getToolTipLocation(java.awt.event.MouseEvent evt)
Overridden to return null, if the cell is fully visible, so that ToolTips are only displayed if the cell is partially hidden.


autosizeColumn

public void autosizeColumn(int col)
Autosizes the specified column to the width of its longest cell.


tableChanged

public void tableChanged(javax.swing.event.TableModelEvent e)
Invoked when the table data has changed, this method autoresizes all columns to its longest content length, if autoResizeColumns is on.


changeSelection

public void changeSelection(int rowIndex,
                            int columnIndex,
                            boolean toggle,
                            boolean extend)
Overwritten to autoscroll only vertically, not horizontally.


fireActionEvent

protected void fireActionEvent(java.awt.event.ActionEvent evt)
This method is invoked if the user pressed Enter, Tab or Shift-Tab on the table.


getCellRendererComponent

protected java.awt.Component getCellRendererComponent(int row,
                                                      int col)
Return the cell renderer component for the cell at (row,col).


getHeaderRendererComponent

protected java.awt.Component getHeaderRendererComponent(int col)
Return the header renderer component for the header at (col).