swingx
Version 2005-08-19

org.jdesktop.swingx
Class JXHyperlink

java.lang.Object
  extended by java.awt.Component
      extended by java.awt.Container
          extended by javax.swing.JComponent
              extended by javax.swing.AbstractButton
                  extended by javax.swing.JButton
                      extended by org.jdesktop.swingx.JXHyperlink
All Implemented Interfaces:
ImageObserver, ItemSelectable, MenuContainer, Serializable, Accessible, SwingConstants

public class JXHyperlink
extends JButton

A hyperlink component that derives from JButton to provide compatibility mostly for binding actions enabled/disabled behavior accesilibity i18n etc...

This button has visual state related to a notion of "clicked": foreground color is unclickedColor or clickedColor depending on its boolean bound property clicked being false or true, respectively. If the hyperlink has an action, it guarantees to synchronize its "clicked" state to an action value with key LinkAction.VISITED_KEY. Synchronization happens on setAction() and on propertyChange notification from the action. JXHyperlink accepts any type of action - LinkAction is a convenience implementation to simplify clicked control.

 
      LinkAction linkAction = new LinkAction("http://swinglabs.org") {
            public void actionPerformed(ActionEvent e) {
                doSomething(getTarget());
                setVisited(true);
            }
      };
      JXHyperlink hyperlink = new JXHyperlink(linkAction);
  
The hyperlink can be configured to always update its clicked property after firing the actionPerformed:
 
      JXHyperlink hyperlink = new JXHyperlink(action);
      hyperlink.setOverrulesActionOnClick(true);
  
By default, this property is false. The hyperlink will auto-click only if it has no action. Developers can change the behaviour by overriding isAutoSetClicked();

See Also:
Serialized Form

Nested Class Summary
 
Nested classes/interfaces inherited from class javax.swing.JButton
JButton.AccessibleJButton
 
Nested classes/interfaces inherited from class javax.swing.AbstractButton
AbstractButton.AccessibleAbstractButton, AbstractButton.ButtonChangeListener
 
Nested classes/interfaces inherited from class javax.swing.JComponent
JComponent.AccessibleJComponent
 
Nested classes/interfaces inherited from class java.awt.Container
Container.AccessibleAWTContainer
 
Nested classes/interfaces inherited from class java.awt.Component
Component.AccessibleAWTComponent, Component.BltBufferStrategy, Component.FlipBufferStrategy
 
Field Summary
static String uiClassID
           
 
Fields inherited from class javax.swing.AbstractButton
actionListener, BORDER_PAINTED_CHANGED_PROPERTY, changeEvent, changeListener, CONTENT_AREA_FILLED_CHANGED_PROPERTY, DISABLED_ICON_CHANGED_PROPERTY, DISABLED_SELECTED_ICON_CHANGED_PROPERTY, FOCUS_PAINTED_CHANGED_PROPERTY, HORIZONTAL_ALIGNMENT_CHANGED_PROPERTY, HORIZONTAL_TEXT_POSITION_CHANGED_PROPERTY, ICON_CHANGED_PROPERTY, itemListener, MARGIN_CHANGED_PROPERTY, MNEMONIC_CHANGED_PROPERTY, model, MODEL_CHANGED_PROPERTY, PRESSED_ICON_CHANGED_PROPERTY, ROLLOVER_ENABLED_CHANGED_PROPERTY, ROLLOVER_ICON_CHANGED_PROPERTY, ROLLOVER_SELECTED_ICON_CHANGED_PROPERTY, SELECTED_ICON_CHANGED_PROPERTY, TEXT_CHANGED_PROPERTY, VERTICAL_ALIGNMENT_CHANGED_PROPERTY, VERTICAL_TEXT_POSITION_CHANGED_PROPERTY
 
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 javax.swing.SwingConstants
BOTTOM, CENTER, EAST, HORIZONTAL, LEADING, LEFT, NEXT, NORTH, NORTH_EAST, NORTH_WEST, PREVIOUS, RIGHT, SOUTH, SOUTH_EAST, SOUTH_WEST, TOP, TRAILING, VERTICAL, WEST
 
Fields inherited from interface java.awt.image.ImageObserver
ABORT, ALLBITS, ERROR, FRAMEBITS, HEIGHT, PROPERTIES, SOMEBITS, WIDTH
 
Constructor Summary
JXHyperlink()
          Creates a new instance of JXHyperlink with default parameters
JXHyperlink(Action action)
          Creates a new instance of JHyperLink and configures it from provided Action.
 
Method Summary
protected  void configurePropertiesFromAction(Action a)
          Read all the essentional properties from the provided Action and apply it to the JXHyperlink
protected  PropertyChangeListener createActionPropertyChangeListener(Action a)
          Create listener that will watch the changes of the provided Action and will update JXHyperlink's properties accordingly.
protected  void fireActionPerformed(ActionEvent event)
          override to control auto-clicked.
 Color getClickedColor()
           
 boolean getOverrulesActionOnClick()
          Returns whether the clicked property should be set always on clicked.
 String getUIClassID()
          Returns a string that specifies the name of the L&F class that renders this component.
 Color getUnclickedColor()
           
protected  boolean isAutoSetClicked()
          Decides auto-setting of clicked property after firing action events.
 boolean isClicked()
           
 void setClicked(boolean clicked)
          Sets the clicked property and updates visual state depending on clicked.
 void setClickedColor(Color color)
          Sets the color for the previously not visited link.
 void setOverrulesActionOnClick(boolean overrule)
          Control auto-click property.
 void setUnclickedColor(Color color)
          Sets the color for the previously visited link.
 
Methods inherited from class javax.swing.JButton
getAccessibleContext, isDefaultButton, isDefaultCapable, paramString, removeNotify, setDefaultCapable, updateUI
 
Methods inherited from class javax.swing.AbstractButton
addActionListener, addChangeListener, addImpl, addItemListener, checkHorizontalKey, checkVerticalKey, createActionListener, createChangeListener, createItemListener, doClick, doClick, fireItemStateChanged, fireStateChanged, getAction, getActionCommand, getActionListeners, getChangeListeners, getDisabledIcon, getDisabledSelectedIcon, getDisplayedMnemonicIndex, getHorizontalAlignment, getHorizontalTextPosition, getIcon, getIconTextGap, getItemListeners, getLabel, getMargin, getMnemonic, getModel, getMultiClickThreshhold, getPressedIcon, getRolloverIcon, getRolloverSelectedIcon, getSelectedIcon, getSelectedObjects, getText, getUI, getVerticalAlignment, getVerticalTextPosition, imageUpdate, init, isBorderPainted, isContentAreaFilled, isFocusPainted, isRolloverEnabled, isSelected, paintBorder, removeActionListener, removeChangeListener, removeItemListener, setAction, setActionCommand, setBorderPainted, setContentAreaFilled, setDisabledIcon, setDisabledSelectedIcon, setDisplayedMnemonicIndex, setEnabled, setFocusPainted, setHorizontalAlignment, setHorizontalTextPosition, setIcon, setIconTextGap, setLabel, setLayout, setMargin, setMnemonic, setMnemonic, setModel, setMultiClickThreshhold, setPressedIcon, setRolloverEnabled, setRolloverIcon, setRolloverSelectedIcon, setSelected, setSelectedIcon, setText, setUI, setVerticalAlignment, setVerticalTextPosition
 
Methods inherited from class javax.swing.JComponent
addAncestorListener, addNotify, addVetoableChangeListener, computeVisibleRect, contains, createToolTip, disable, enable, firePropertyChange, firePropertyChange, firePropertyChange, fireVetoableChange, getActionForKeyStroke, getActionMap, getAlignmentX, getAlignmentY, getAncestorListeners, getAutoscrolls, 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, getToolTipText, getTopLevelAncestor, getTransferHandler, getVerifyInputWhenFocusTarget, getVetoableChangeListeners, getVisibleRect, getWidth, getX, getY, grabFocus, isDoubleBuffered, isLightweightComponent, isManagingFocus, isOpaque, isOptimizedDrawingEnabled, isPaintingTile, isRequestFocusEnabled, isValidateRoot, paint, paintChildren, paintComponent, paintImmediately, paintImmediately, print, printAll, printBorder, printChildren, printComponent, processComponentKeyEvent, processKeyBinding, 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, 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, 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, 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, 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
 

Field Detail

uiClassID

public static final String uiClassID
See Also:
getUIClassID(), JComponent.readObject(java.io.ObjectInputStream), Constant Field Values
Constructor Detail

JXHyperlink

public JXHyperlink()
Creates a new instance of JXHyperlink with default parameters


JXHyperlink

public JXHyperlink(Action action)
Creates a new instance of JHyperLink and configures it from provided Action.

Parameters:
action - Action whose parameters will be borrowed to configure newly created JXHyperLink
Method Detail

getUnclickedColor

public Color getUnclickedColor()
Returns:
Color for the hyper link if it has not yet been clicked.

setClickedColor

public void setClickedColor(Color color)
Sets the color for the previously not visited link. This value will override the one set by the "JXHyperlink.unclickedColor" UIManager property and defaults.

Parameters:
color - Color for the hyper link if it has not yet been clicked.

getClickedColor

public Color getClickedColor()
Returns:
Color for the hyper link if it has already been clicked.

setUnclickedColor

public void setUnclickedColor(Color color)
Sets the color for the previously visited link. This value will override the one set by the "JXHyperlink.clickedColor" UIManager property and defaults.

Parameters:
color - Color for the hyper link if it has already been clicked.

setClicked

public void setClicked(boolean clicked)
Sets the clicked property and updates visual state depending on clicked. Here: the dependent visual state is the foreground color. NOTE: as with all button's visual properties, this will not update the backing action's "visited" state.

Parameters:
clicked - flag to indicate if the button should be regarded as having been clicked or not.

isClicked

public boolean isClicked()
Returns:
true if hyper link has already been clicked.

setOverrulesActionOnClick

public void setOverrulesActionOnClick(boolean overrule)
Control auto-click property.

Parameters:
overrule - if true, fireActionPerformed will set clicked to true independent of action.

getOverrulesActionOnClick

public boolean getOverrulesActionOnClick()
Returns whether the clicked property should be set always on clicked. Defaults to false.

Returns:
overrulesActionOnClick

fireActionPerformed

protected void fireActionPerformed(ActionEvent event)
override to control auto-clicked.

Overrides:
fireActionPerformed in class AbstractButton

isAutoSetClicked

protected boolean isAutoSetClicked()
Decides auto-setting of clicked property after firing action events. Here: true if no action or overrulesAction property is true.

Returns:
true if fireActionEvent should force a clicked, false if not.

createActionPropertyChangeListener

protected PropertyChangeListener createActionPropertyChangeListener(Action a)
Create listener that will watch the changes of the provided Action and will update JXHyperlink's properties accordingly.

Overrides:
createActionPropertyChangeListener in class AbstractButton

configurePropertiesFromAction

protected void configurePropertiesFromAction(Action a)
Read all the essentional properties from the provided Action and apply it to the JXHyperlink

Overrides:
configurePropertiesFromAction in class JButton

getUIClassID

public String getUIClassID()
Returns a string that specifies the name of the L&F class that renders this component.

Overrides:
getUIClassID in class JButton

swingx
Version 2005-08-19