org.opensourcephysics.display
Class ArrayTable

java.lang.Object
  extended by java.awt.Component
      extended by java.awt.Container
          extended by javax.swing.JComponent
              extended by javax.swing.JTable
                  extended by org.opensourcephysics.display.ArrayTable
All Implemented Interfaces:
java.awt.event.ActionListener, java.awt.image.ImageObserver, java.awt.MenuContainer, java.io.Serializable, java.util.EventListener, javax.accessibility.Accessible, javax.swing.event.CellEditorListener, javax.swing.event.ListSelectionListener, javax.swing.event.RowSorterListener, javax.swing.event.TableColumnModelListener, javax.swing.event.TableModelListener, javax.swing.Scrollable

public class ArrayTable
extends javax.swing.JTable
implements java.awt.event.ActionListener

A JTable to display int, double and String array values. Version 1.1 uses a Timer to coalesce Refresh Table events

Version:
1.1
Author:
Douglas Brown, Wolfgang Christian
See Also:
Serialized Form

Nested 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, 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
ArrayTable(boolean[] array)
          Constructor for 1D boolean array.
ArrayTable(boolean[][] array)
          Constructor for 2D boolean array.
ArrayTable(double[] array)
          Constructor for 1D double array.
ArrayTable(double[][] array)
          Constructor for 2D double array.
ArrayTable(int[] array)
          Constructor for 1D int array.
ArrayTable(int[][] array)
          Constructor for 2D int array.
ArrayTable(java.lang.String[] array)
          Constructor for 1D String array.
ArrayTable(java.lang.String[][] array)
          Constructor for 2D String array.
 
Method Summary
 void actionPerformed(java.awt.event.ActionEvent evt)
          Performs the action for the refresh timer by refreshing the data in the DataTable.
 boolean editCellAt(int row, int column, java.util.EventObject e)
          Starts editing the cell at row and column.
 javax.swing.table.TableCellRenderer getCellRenderer(int row, int column)
          Returns the renderer for a cell specified by row and column.
 java.awt.Font getFont()
          Gets the default font of this component.
protected  void init()
          Initializes the table.
 boolean isTransposed()
          Returns true of the table's row and column values are interchanged.
 void refreshTable()
          Refresh the data in the table.
 void setBackground(java.awt.Color color)
          Sets the background color of this component.
 void setColumnLock(int columnIndex, boolean locked)
          Sets the column's locked flag.
 void setColumnLocks(boolean[] locked)
          Sets the lock flag for multiple columns.
 void setColumnNames(java.lang.String[] names)
          Sets columns names.
 void setDataBackground(java.awt.Color color)
          Sets the background color of the data cell rendering component.
 void setDataForeground(java.awt.Color color)
          Sets the foreground color of the cell rendering component.
 void setEditable(boolean editable)
          Sets the editable property.
 void setFirstColIndex(int index)
          Sets the first column's index.
 void setFirstRowIndex(int index)
          Sets the first row's index.
 void setFont(java.awt.Font font)
          Sets the font for this component.
 void setForeground(java.awt.Color color)
          Sets the foreground color of this component.
 void setNumericFormat(java.lang.String str)
          Sets the default numeric display format for all columns
 void setNumericFormat(java.lang.String[] str)
          Sets the numeric display format for each column
 void setRefreshDelay(int delay)
          Sets the Timer's initial time delay (in milliseconds) to wait after the timer is started before firing the first event.
 void setRowNumberVisible(boolean vis)
          Sets the display row number flag.
 void setTransposed(boolean transposed)
          Sets the transposed property for the array.
 
Methods inherited from class javax.swing.JTable
addColumn, addColumnSelectionInterval, addNotify, addRowSelectionInterval, changeSelection, clearSelection, columnAdded, columnAtPoint, columnMarginChanged, columnMoved, columnRemoved, columnSelectionChanged, configureEnclosingScrollPane, convertColumnIndexToModel, convertColumnIndexToView, convertRowIndexToModel, convertRowIndexToView, createDefaultColumnModel, createDefaultColumnsFromModel, createDefaultDataModel, createDefaultEditors, createDefaultRenderers, createDefaultSelectionModel, createDefaultTableHeader, createScrollPaneForTable, doLayout, editCellAt, editingCanceled, editingStopped, getAccessibleContext, getAutoCreateColumnsFromModel, getAutoCreateRowSorter, getAutoResizeMode, getCellEditor, getCellEditor, getCellRect, getCellSelectionEnabled, getColumn, getColumnClass, getColumnCount, getColumnModel, getColumnName, getColumnSelectionAllowed, getDefaultEditor, getDefaultRenderer, getDragEnabled, getDropLocation, getDropMode, getEditingColumn, getEditingRow, getEditorComponent, getFillsViewportHeight, getGridColor, getIntercellSpacing, getModel, 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, setModel, setPreferredScrollableViewportSize, setRowHeight, setRowHeight, setRowMargin, setRowSelectionAllowed, setRowSelectionInterval, setRowSorter, setSelectionBackground, setSelectionForeground, setSelectionMode, setSelectionModel, setShowGrid, setShowHorizontalLines, setShowVerticalLines, setSurrendersFocusOnKeystroke, setTableHeader, setUI, setUpdateSelectionOnSort, setValueAt, sizeColumnsToFit, sizeColumnsToFit, sorterChanged, tableChanged, 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, setBorder, setComponentPopupMenu, setDebugGraphicsOptions, setDefaultLocale, setDoubleBuffered, setEnabled, setFocusTraversalKeys, 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, 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

ArrayTable

public ArrayTable(int[] array)
Constructor for 1D int array.

Parameters:
array - the array

ArrayTable

public ArrayTable(int[][] array)
Constructor for 2D int array.

Parameters:
array - the array

ArrayTable

public ArrayTable(double[] array)
Constructor for 1D double array.

Parameters:
array - the array

ArrayTable

public ArrayTable(double[][] array)
Constructor for 2D double array.

Parameters:
array - the array

ArrayTable

public ArrayTable(java.lang.String[] array)
Constructor for 1D String array.

Parameters:
array - the array

ArrayTable

public ArrayTable(java.lang.String[][] array)
Constructor for 2D String array.

Parameters:
array - the array

ArrayTable

public ArrayTable(boolean[] array)
Constructor for 1D boolean array.

Parameters:
array - the array

ArrayTable

public ArrayTable(boolean[][] array)
Constructor for 2D boolean array.

Parameters:
array - the array
Method Detail

init

protected void init()
Initializes the table.


editCellAt

public boolean editCellAt(int row,
                          int column,
                          java.util.EventObject e)
Starts editing the cell at row and column. Overrides JTable method.

Overrides:
editCellAt in class javax.swing.JTable
Parameters:
row - the row to be edited
column - the column to be edited
e - ignored
Returns:
false if the cell cannot be edited or the indices are invalid

actionPerformed

public void actionPerformed(java.awt.event.ActionEvent evt)
Performs the action for the refresh timer by refreshing the data in the DataTable.

Specified by:
actionPerformed in interface java.awt.event.ActionListener
Parameters:
evt -

setRefreshDelay

public void setRefreshDelay(int delay)
Sets the Timer's initial time delay (in milliseconds) to wait after the timer is started before firing the first event.

Parameters:
delay -

refreshTable

public void refreshTable()
Refresh the data in the table.


setNumericFormat

public void setNumericFormat(java.lang.String str)
Sets the default numeric display format for all columns

Parameters:
defaultFormat -

setNumericFormat

public void setNumericFormat(java.lang.String[] str)
Sets the numeric display format for each column

Parameters:
defaultFormat -

setFirstRowIndex

public void setFirstRowIndex(int index)
Sets the first row's index.

Parameters:
index -

setFirstColIndex

public void setFirstColIndex(int index)
Sets the first column's index.

Parameters:
index -

setRowNumberVisible

public void setRowNumberVisible(boolean vis)
Sets the display row number flag. Table displays row number.

Parameters:
vis - true<\code> if table display row number

setEditable

public void setEditable(boolean editable)
Sets the editable property.

Parameters:
editable - true allows editing of the cell values that are not locked.

isTransposed

public boolean isTransposed()
Returns true of the table's row and column values are interchanged.

Returns:

setTransposed

public void setTransposed(boolean transposed)
Sets the transposed property for the array. A transposed array switches its row and column values in the display.

Parameters:
transposed -

setColumnNames

public void setColumnNames(java.lang.String[] names)
Sets columns names.

Parameters:
names -

setColumnLock

public void setColumnLock(int columnIndex,
                          boolean locked)
Sets the column's locked flag.

Parameters:
column - int
locked - boolean

setColumnLocks

public void setColumnLocks(boolean[] locked)
Sets the lock flag for multiple columns. Previously set locks are cleared.

Parameters:
locked - boolean array

getFont

public java.awt.Font getFont()
Gets the default font of this component.

Specified by:
getFont in interface java.awt.MenuContainer
Overrides:
getFont in class java.awt.Component
Returns:
this component's font

setFont

public void setFont(java.awt.Font font)
Sets the font for this component.

Overrides:
setFont in class javax.swing.JComponent
Parameters:
font - the desired Font for this component
See Also:
Component.getFont()

setForeground

public void setForeground(java.awt.Color color)
Sets the foreground color of this component. It is up to the look and feel to honor this property, some may choose to ignore it.

Overrides:
setForeground in class javax.swing.JComponent
Parameters:
color - the desired foreground Color
See Also:
Component.getForeground()

setDataForeground

public void setDataForeground(java.awt.Color color)
Sets the foreground color of the cell rendering component. It is up to the look and feel to honor this property, some may choose to ignore it.

Parameters:
color - the desired foreground Color

setBackground

public void setBackground(java.awt.Color color)
Sets the background color of this component. It is up to the look and feel to honor this property, some may choose to ignore it.

Overrides:
setBackground in class javax.swing.JComponent
Parameters:
color - the desired background Color
See Also:
Component.getBackground()

setDataBackground

public void setDataBackground(java.awt.Color color)
Sets the background color of the data cell rendering component. It is up to the look and feel to honor this property, some may choose to ignore it.

Parameters:
color - the desired background Color

getCellRenderer

public javax.swing.table.TableCellRenderer getCellRenderer(int row,
                                                           int column)
Returns the renderer for a cell specified by row and column.

Overrides:
getCellRenderer in class javax.swing.JTable
Parameters:
row - the row number
column - the column number
Returns:
the cell renderer