org.jdesktop.swingx
Class JXHyperlink
java.lang.Object
java.awt.Component
java.awt.Container
javax.swing.JComponent
javax.swing.AbstractButton
javax.swing.JButton
org.jdesktop.swingx.JXHyperlink
- All Implemented Interfaces:
- ImageObserver, ItemSelectable, MenuContainer, Serializable, Accessible, SwingConstants
- Direct Known Subclasses:
- JXRendererHyperlink
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 -
AbstractHyperlinkAction
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
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 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 |
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)
Creates and returns a listener that will watch the changes of the
provided Action and will update JXHyperlink's properties
accordingly. |
protected void |
fireActionPerformed(ActionEvent event)
Notifies all listeners that have registered interest for
notification on this event type. |
Color |
getClickedColor()
Returns the foreground color for visited links. |
boolean |
getOverrulesActionOnClick()
Returns a boolean indicating 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()
Returns the foreground color for unvisited links. |
protected boolean |
isAutoSetClicked()
Returns a boolean indicating whether the clicked property should be set
after firing action events. |
boolean |
isClicked()
Returns a boolean indicating if this link has already been visited. |
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)
Sets the overrulesActionOnClick property. |
void |
setUnclickedColor(Color color)
Sets the color for the previously visited link. |
void |
setURI(URI uri)
Convenience method to create and install a HyperlinkAction for the given uri. |
void |
updateUI()
Notification from the UIManager that the L&F has changed. |
Methods inherited from class javax.swing.AbstractButton |
actionPropertyChanged, addActionListener, addChangeListener, addImpl, addItemListener, checkHorizontalKey, checkVerticalKey, createActionListener, createChangeListener, createItemListener, doClick, doClick, fireItemStateChanged, fireStateChanged, getAction, getActionCommand, getActionListeners, getChangeListeners, getDisabledIcon, getDisabledSelectedIcon, getDisplayedMnemonicIndex, getHideActionText, 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, setHideActionText, 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, 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, getToolTipText, getTopLevelAncestor, getTransferHandler, getVerifyInputWhenFocusTarget, getVetoableChangeListeners, getVisibleRect, getWidth, getX, getY, grabFocus, isDoubleBuffered, isLightweightComponent, isManagingFocus, isOpaque, isOptimizedDrawingEnabled, isPaintingForPrint, 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 |
uiClassID
public static final String uiClassID
- See Also:
getUIClassID()
,
JComponent.readObject(java.io.ObjectInputStream)
,
Constant Field Values
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
setURI
public void setURI(URI uri)
- Convenience method to create and install a HyperlinkAction for the given uri.
- Parameters:
uri
- to uri to create a HyperlinkAction for, maybe null.
- Throws:
HeadlessException
- if GraphicsEnvironment.isHeadless()
returns true
UnsupportedOperationException
- if the current platform doesn't support
Desktop- See Also:
org.jdesktop.swingx.HyperlinkAction.createHyperlinkAction(URI)
getUnclickedColor
public Color getUnclickedColor()
- Returns the foreground color for unvisited links.
- 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 the foreground color for visited links.
- 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.
This implementation updated 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.- See Also:
isClicked()
isClicked
public boolean isClicked()
- Returns a boolean indicating if this link has already been visited.
- Returns:
true
if hyper link has already been clicked.- See Also:
setClicked(boolean)
setOverrulesActionOnClick
public void setOverrulesActionOnClick(boolean overrule)
- Sets the overrulesActionOnClick property. It controls whether this
button should overrule the Action's visited property on actionPerformed.
The default value is false
.
- Parameters:
overrule
- if true, fireActionPerformed will set clicked to true
independent of action.- See Also:
getOverrulesActionOnClick()
,
setClicked(boolean)
getOverrulesActionOnClick
public boolean getOverrulesActionOnClick()
- Returns a boolean indicating whether the clicked property should be set
always on clicked.
- Returns:
- overrulesActionOnClick false if his button clicked property
respects the Action's visited property. True if the clicked
should be updated on every actionPerformed.
- See Also:
setOverrulesActionOnClick(boolean)
,
setClicked(boolean)
fireActionPerformed
protected void fireActionPerformed(ActionEvent event)
- Notifies all listeners that have registered interest for
notification on this event type. The event instance
is lazily created using the
event
parameter.
Overriden to respect the overrulesActionOnClick property.
- Overrides:
fireActionPerformed
in class AbstractButton
- Parameters:
event
- the ActionEvent
object- See Also:
EventListenerList
isAutoSetClicked
protected boolean isAutoSetClicked()
- Returns a boolean indicating whether the clicked property should be set
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)
- Creates and returns a listener that will watch the changes of the
provided
Action
and will update JXHyperlink's properties
accordingly.
- Overrides:
createActionPropertyChangeListener
in class AbstractButton
- Parameters:
a
- the button's action- See Also:
- Actions,
Action
,
AbstractButton.setAction(javax.swing.Action)
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 AbstractButton
- Parameters:
a
- the Action
from which to get the properties,
or null
- See Also:
Action
,
AbstractButton.setAction(javax.swing.Action)
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
- Returns:
- the string "ButtonUI"
- See Also:
JComponent.getUIClassID()
,
UIDefaults.getUI(javax.swing.JComponent)
updateUI
public void updateUI()
- Notification from the
UIManager
that the L&F has changed.
Replaces the current UI object with the latest version from the UIManager
.
- Overrides:
updateUI
in class JButton
- See Also:
JComponent.updateUI()