- All Implemented Interfaces:
ImageObserver,MenuContainer,Serializable,Accessible,Scrollable,TocTree
- Direct Known Subclasses:
UrlTocPane
To initialize the tree, the user should first call its
constructor (which takes zero arguments), followed by a call to the
method addEntry(name, obj) to add the root of the
tree. This assigns the root node a name name and value
obj. To add children, this must be followed by a call
to nextLevel, followed by calls to
addEntry for each child. Each call to
nextLevel() must be balanced with a call to
prevLevel(). When all entries are defined, the method
entriesCompleted(). If you do not want the root node
to be displayed, use entriesCompleted(false) instead
of entriesCompleted(). One may also use the
addActionListener method to add action listeners in order
to respond to changes in the selection. These listeners are notified
whenever an entry is clicked, not just when the entry was changed.
Finally, one should call setSelectionWithAction(int) to
execute the action that would occur when the initial node is
selected (this is not done automatically to give the programmer
some control over when this should occur, and allows software to
change the selection as needed.)
Access methods for ObjTocPane.Entry allow one to recover
any relevant mouse event. These are valid for the duration of
action listeners fired by a selection or a call to
setSelectionWithAction(int). An instance of
ObjTocPane.Entry will be used as the source of action events
created by this class in response to a call to
setSelectionWithAction(int).
- See Also:
-
Nested Class Summary
Nested ClassesNested classes/interfaces inherited from class javax.swing.JTree
JTree.AccessibleJTree, JTree.DropLocation, JTree.DynamicUtilTreeNode, JTree.EmptySelectionModel, JTree.TreeModelHandler, JTree.TreeSelectionRedirectorNested classes/interfaces inherited from class javax.swing.JComponent
JComponent.AccessibleJComponentNested classes/interfaces inherited from class java.awt.Container
Container.AccessibleAWTContainerNested classes/interfaces inherited from class java.awt.Component
Component.AccessibleAWTComponent, Component.BaselineResizeBehavior, Component.BltBufferStrategy, Component.FlipBufferStrategy -
Field Summary
Fields inherited from class javax.swing.JTree
ANCHOR_SELECTION_PATH_PROPERTY, CELL_EDITOR_PROPERTY, CELL_RENDERER_PROPERTY, cellEditor, cellRenderer, editable, EDITABLE_PROPERTY, EXPANDS_SELECTED_PATHS_PROPERTY, INVOKES_STOP_CELL_EDITING_PROPERTY, invokesStopCellEditing, LARGE_MODEL_PROPERTY, largeModel, LEAD_SELECTION_PATH_PROPERTY, ROOT_VISIBLE_PROPERTY, rootVisible, ROW_HEIGHT_PROPERTY, rowHeight, SCROLLS_ON_EXPAND_PROPERTY, scrollsOnExpand, SELECTION_MODEL_PROPERTY, selectionModel, selectionRedirector, SHOWS_ROOT_HANDLES_PROPERTY, showsRootHandles, TOGGLE_CLICK_COUNT_PROPERTY, toggleClickCount, TREE_MODEL_PROPERTY, treeModel, treeModelListener, VISIBLE_ROW_COUNT_PROPERTY, visibleRowCountFields inherited from class javax.swing.JComponent
TOOL_TIP_TEXT_KEY, ui, UNDEFINED_CONDITION, WHEN_ANCESTOR_OF_FOCUSED_COMPONENT, WHEN_FOCUSED, WHEN_IN_FOCUSED_WINDOWFields inherited from class java.awt.Component
accessibleContext, BOTTOM_ALIGNMENT, CENTER_ALIGNMENT, LEFT_ALIGNMENT, RIGHT_ALIGNMENT, TOP_ALIGNMENTFields inherited from interface java.awt.image.ImageObserver
ABORT, ALLBITS, ERROR, FRAMEBITS, HEIGHT, PROPERTIES, SOMEBITS, WIDTH -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionvoidAdd an action listener.voidAdd a new node to the tree, giving it a name.voidClear the selection.voidclearToc()Clear the table of contents and puts it in a state where entries can be added.voidAssert that no more entries will be added.voidentriesCompleted(boolean expand) Assert that no more entries will be added.protected voidNotify all action listeners of action-performed events.voidAdd a new level to the tree rooted at the last node entered.voidReturn to the previous level in the tree.voidRemove an action listener.voidsetBackground(Color color) Set the backgound color of this component.voidSets the TreeCellRenderer that will be used to draw each cell.voidsetForeground(Color color) Set the foreground color of this component.final voidsetSelectionWithAction(int row) Set the selection and perform an action.voidSet the current table-cell-renderer's background color for non-selected items.voidSet the current table-cell-renderer's background color for selected items.voidsetTCRFont(Font font) Set the current table-cell-renderer's font.voidSet the current table-cell-renderer's text color for non-selected items.voidSet the current table-cell-renderer's text color for selected items.Methods inherited from class javax.swing.JTree
addSelectionInterval, addSelectionPath, addSelectionPaths, addSelectionRow, addSelectionRows, addTreeExpansionListener, addTreeSelectionListener, addTreeWillExpandListener, cancelEditing, clearToggledPaths, collapsePath, collapseRow, convertValueToText, createTreeModel, createTreeModelListener, expandPath, expandRow, fireTreeCollapsed, fireTreeExpanded, fireTreeWillCollapse, fireTreeWillExpand, fireValueChanged, getAccessibleContext, getAnchorSelectionPath, getCellEditor, getCellRenderer, getClosestPathForLocation, getClosestRowForLocation, getDefaultTreeModel, getDescendantToggledPaths, getDragEnabled, getDropLocation, getDropMode, getEditingPath, getExpandedDescendants, getExpandsSelectedPaths, getInvokesStopCellEditing, getLastSelectedPathComponent, getLeadSelectionPath, getLeadSelectionRow, getMaxSelectionRow, getMinSelectionRow, getModel, getNextMatch, getPathBetweenRows, getPathBounds, getPathForLocation, getPathForRow, getPreferredScrollableViewportSize, getRowBounds, getRowCount, getRowForLocation, getRowForPath, getRowHeight, getScrollableBlockIncrement, getScrollableTracksViewportHeight, getScrollableTracksViewportWidth, getScrollableUnitIncrement, getScrollsOnExpand, getSelectionCount, getSelectionModel, getSelectionPath, getSelectionPaths, getSelectionRows, getShowsRootHandles, getToggleClickCount, getToolTipText, getTreeExpansionListeners, getTreeSelectionListeners, getTreeWillExpandListeners, getUI, getUIClassID, getVisibleRowCount, hasBeenExpanded, isCollapsed, isCollapsed, isEditable, isEditing, isExpanded, isExpanded, isFixedRowHeight, isLargeModel, isPathEditable, isPathSelected, isRootVisible, isRowSelected, isSelectionEmpty, isVisible, makeVisible, paramString, removeDescendantSelectedPaths, removeDescendantToggledPaths, removeSelectionInterval, removeSelectionPath, removeSelectionPaths, removeSelectionRow, removeSelectionRows, removeTreeExpansionListener, removeTreeSelectionListener, removeTreeWillExpandListener, scrollPathToVisible, scrollRowToVisible, setAnchorSelectionPath, setCellEditor, setDragEnabled, setDropMode, setEditable, setExpandedState, setExpandsSelectedPaths, setInvokesStopCellEditing, setLargeModel, setLeadSelectionPath, setModel, setRootVisible, setRowHeight, setScrollsOnExpand, setSelectionInterval, setSelectionModel, setSelectionPath, setSelectionPaths, setSelectionRow, setSelectionRows, setShowsRootHandles, setToggleClickCount, setUI, setVisibleRowCount, startEditingAtPath, stopEditing, treeDidChange, updateUIMethods inherited from class javax.swing.JComponent
addAncestorListener, addNotify, 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, hide, isDoubleBuffered, isLightweightComponent, isManagingFocus, isOpaque, isOptimizedDrawingEnabled, isPaintingForPrint, isPaintingOrigin, isPaintingTile, isRequestFocusEnabled, isValidateRoot, paint, paintBorder, paintChildren, paintComponent, paintImmediately, paintImmediately, print, printAll, printBorder, printChildren, printComponent, processComponentKeyEvent, processKeyBinding, processKeyEvent, processMouseEvent, processMouseMotionEvent, putClientProperty, registerKeyboardAction, registerKeyboardAction, removeAncestorListener, removeNotify, removeVetoableChangeListener, repaint, repaint, requestDefaultFocus, requestFocus, requestFocus, requestFocusInWindow, requestFocusInWindow, resetKeyboardActions, reshape, revalidate, scrollRectToVisible, setActionMap, setAlignmentX, setAlignmentY, setAutoscrolls, setBorder, setComponentPopupMenu, setDebugGraphicsOptions, setDefaultLocale, setDoubleBuffered, setEnabled, setFocusTraversalKeys, setFont, setInheritsPopupMenu, setInputMap, setInputVerifier, setMaximumSize, setMinimumSize, setNextFocusableComponent, setOpaque, setPreferredSize, setRequestFocusEnabled, setToolTipText, setTransferHandler, setUI, setVerifyInputWhenFocusTarget, setVisible, unregisterKeyboardAction, updateMethods inherited from class java.awt.Container
add, add, add, add, add, addContainerListener, addImpl, addPropertyChangeListener, addPropertyChangeListener, applyComponentOrientation, areFocusTraversalKeysSet, countComponents, deliverEvent, doLayout, 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, transferFocusDownCycle, validate, validateTreeMethods 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, getPropertyChangeListeners, getPropertyChangeListeners, getSize, getToolkit, getTreeLock, gotFocus, handleEvent, hasFocus, 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, requestFocus, requestFocus, requestFocusInWindow, resize, resize, setBounds, setBounds, setComponentOrientation, setCursor, setDropTarget, setFocusable, setFocusTraversalKeysEnabled, setIgnoreRepaint, setLocale, setLocation, setLocation, setMixingCutoutShape, setName, setSize, setSize, show, show, size, toString, transferFocus, transferFocusBackward, transferFocusUpCycleMethods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, waitMethods inherited from interface org.bzdev.swing.TocTree
collapseRow, expandRow, isCollapsed, isExpanded
-
Constructor Details
-
ObjTocPane
public ObjTocPane()Constructor. Initialization is handled by a series of method calls.
-
-
Method Details
-
clearToc
public void clearToc()Clear the table of contents and puts it in a state where entries can be added. -
addActionListener
Add an action listener. The source of an action event will be the entry that was selected: an object whose type isObjTocPane.Entry. The action's command is the title for the entry.- Specified by:
addActionListenerin interfaceTocTree- Parameters:
l- the action listener to add.
-
removeActionListener
Remove an action listener.- Specified by:
removeActionListenerin interfaceTocTree- Parameters:
l- the action listener to remove.
-
fireActionPerformed
protected void fireActionPerformed()Notify all action listeners of action-performed events. -
clearSelection
public void clearSelection()Clear the selection. This method also generates action events with the source set to an entry with a null title and a null object.- Specified by:
clearSelectionin interfaceTocTree- Overrides:
clearSelectionin classJTree
-
addEntry
Add a new node to the tree, giving it a name.- Specified by:
addEntryin interfaceTocTree- Parameters:
name- A string naming the node.obj- The object that represents the value of the node.- Throws:
IllegalStateException- if this method was called after a call toentriesCompleted.- See Also:
-
nextLevel
public void nextLevel()Add a new level to the tree rooted at the last node entered.- Specified by:
nextLevelin interfaceTocTree- Throws:
IllegalStateException- if this method was called after a call toentriesCompleted.- See Also:
-
prevLevel
public void prevLevel()Return to the previous level in the tree.- Specified by:
prevLevelin interfaceTocTree- Throws:
IllegalStateException- if this method was called after a call toentriesCompletedor if it was called more times thannextLevel- See Also:
-
entriesCompleted
public void entriesCompleted()Assert that no more entries will be added. A call to this method will complete construction of the tree. It is equivalent to callingentriesCompleted(false).- Specified by:
entriesCompletedin interfaceTocTree- Throws:
IllegalStateException- if this method was already called.- See Also:
-
entriesCompleted
public void entriesCompleted(boolean expand) Assert that no more entries will be added. A call to this method will complete construction of the tree.- Specified by:
entriesCompletedin interfaceTocTree- Parameters:
expand-trueif all nodes should be expanded before the tree is displayed; false if no nodes should be expanded- Throws:
IllegalStateException- if this method was already called.- See Also:
-
setSelectionWithAction
public final void setSelectionWithAction(int row) Set the selection and perform an action. This method should be called after the call toentriesCompleted. It sets the selected object and callsfireActionPerformed(). Rows are indexed with 0 indicating the first visible node and with only visible nodes counted, regardless of whether these nodes are displayable. Expanding or collapsing nodes changes the indexing. Changing the portion of the pane that is shown in the display does not change the indexing. At the time this description was written, the JTree documentation was somewhat obscure regarding how this indexing works.- Specified by:
setSelectionWithActionin interfaceTocTree- Parameters:
row- the row to select.- Throws:
IllegalStateException- if this method was called beforeentriesCompleted.
-
setCellRenderer
Sets the TreeCellRenderer that will be used to draw each cell.- Overrides:
setCellRendererin classJTree- Parameters:
x- the tree-cell renderer that is to render each cell- See Also:
-
setBackground
Set the backgound color of this component. A background color is used only if a component is opaque; however, unless the colors for the selected or non-selected tree endtries are already set explicitly, this method will also set the background color for those entries to reasonable values.Modifications to a table-cell renderer are not automtically reapplied if the table-cell renderer is changed.
Note: with some pluggable look and feels, this method may be fully or partially ignored. It works as expected with the default look and feel.
- Overrides:
setBackgroundin classJComponent- Parameters:
color- the color- See Also:
-
setForeground
Set the foreground color of this component. A foreground color is used only if a component is opaque; however, unless the colors for the selected or non-selected tree entries are already set explicitly, this method will also set the text color for those entries.Modifications to a table-cell renderer are not automtically reapplied if the table-cell renderer is changed.
Note: with some pluggable look and feels, this method may be fully or partially ignored. It works as expected with the default look and feel.
- Overrides:
setForegroundin classJComponent- Parameters:
color- the color- See Also:
-
setTCRBackgroundSelectionColor
Set the current table-cell-renderer's background color for selected items.This method is provided for convenience. To get the value, use
JTree.getCellRenderer()to get the current cell renderer. If the cell renderer is an instance ofDefaultTreeCellRenderer, use the methodDefaultTreeCellRenderer.getBackgroundSelectionColor().Note: with some pluggable look and feels, this method may be fully or partially ignored. It works as expected with the default look and feel.
- Parameters:
c- the color- Throws:
UnsupportedOperationException- if the tree cell renderer is not an instance ofDefaultTreeCellRenderer
-
setTCRBackgroundNonSelectionColor
Set the current table-cell-renderer's background color for non-selected items.This method is provided for convenience. To get the value, use
JTree.getCellRenderer()to get the current cell renderer. If the cell renderer is an instance ofDefaultTreeCellRenderer, use the methodDefaultTreeCellRenderer.getBackgroundNonSelectionColor().Note: with some pluggable look and feels, this method may be fully or partially ignored. It works as expected with the default look and feel.
- Parameters:
c- the color- Throws:
UnsupportedOperationException- if the tree cell renderer is not an instance ofDefaultTreeCellRenderer
-
setTCRTextSelectionColor
Set the current table-cell-renderer's text color for selected items.This method is provided for convenience. To get the value, use
JTree.getCellRenderer()to get the current cell renderer. If the cell renderer is an instance ofDefaultTreeCellRenderer, use the methodDefaultTreeCellRenderer.getTextSelectionColor().Note: with some pluggable look and feels, this method may be fully or partially ignored. It works as expected with the default look and feel.
- Parameters:
c- the color- Throws:
UnsupportedOperationException- if the tree cell renderer is not an instance ofDefaultTreeCellRenderer
-
setTCRTextNonSelectionColor
Set the current table-cell-renderer's text color for non-selected items. This method is provided for convenience. To get the value, useJTree.getCellRenderer()to get the current cell renderer. If the cell renderer is an instance ofDefaultTreeCellRenderer, use the methodDefaultTreeCellRenderer.getTextNonSelectionColor().Note: with some pluggable look and feels, this method may be fully or partially ignored. It works as expected with the default look and feel.
- Parameters:
c- the color- Throws:
UnsupportedOperationException- if the tree cell renderer is not an instance ofDefaultTreeCellRenderer
-
setTCRFont
Set the current table-cell-renderer's font.This method is provided for convenience. To get the value, use
JTree.getCellRenderer()to get the current cell renderer. If the cell renderer is an instance ofDefaultTreeCellRenderer, use the methodDefaultTreeCellRenderer.getFont().Note: with some pluggable look and feels, this method may be fully or partially ignored. It works as expected with the default look and feel.
- Parameters:
font- the font- Throws:
UnsupportedOperationException- if the tree cell renderer is not an instance ofDefaultTreeCellRenderer
-