Class JXHyperlink
- All Implemented Interfaces:
ImageObserver
,ItemSelectable
,MenuContainer
,Serializable
,Accessible
,SwingConstants
- Direct Known Subclasses:
JXRendererHyperlink
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()
;- Author:
- Richard Bair, Shai Almog, Jeanette Winzenburg
- See Also:
-
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.BaselineResizeBehavior, Component.BltBufferStrategy, Component.FlipBufferStrategy
-
Field Summary
FieldsFields 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
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
accessibleContext, 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
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
ConstructorsConstructorDescriptionCreates a new instance of JXHyperlink with default parametersJXHyperlink
(Action action) Creates a new instance of JHyperLink and configures it from provided Action. -
Method Summary
Modifier and TypeMethodDescriptionprotected void
Read all the essential properties from the providedAction
and apply it to theJXHyperlink
protected PropertyChangeListener
Creates and returns a listener that will watch the changes of the providedAction
and will update JXHyperlink's properties accordingly.protected void
fireActionPerformed
(ActionEvent event) Returns the foreground color for visited links.boolean
Returns a boolean indicating whether the clicked property should be set always on clicked.Returns a string that specifies the name of the LaF class that renders this component.Returns the foreground color for unvisited links.protected boolean
Returns a boolean indicating whether the clicked property should be set after firing action events.boolean
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 visited link.void
setOverrulesActionOnClick
(boolean overrule) Sets the overrulesActionOnClick property.void
setUnclickedColor
(Color color) Sets the color for the previously not visited link.void
Convenience method to create and install a HyperlinkAction for the given URI.void
updateUI()
Notification from theUIManager
that the LaF has changed.Methods inherited from class javax.swing.JButton
getAccessibleContext, isDefaultButton, isDefaultCapable, paramString, removeNotify, setDefaultCapable
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, hide, isDoubleBuffered, isLightweightComponent, isManagingFocus, isOpaque, isOptimizedDrawingEnabled, isPaintingForPrint, isPaintingOrigin, 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, 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, getPropertyChangeListeners, getPropertyChangeListeners, getSize, getToolkit, getTreeLock, gotFocus, handleEvent, hasFocus, 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, transferFocusUpCycle
-
Field Details
-
uiClassID
- See Also:
-
getUIClassID()
JComponent.readObject(java.io.ObjectInputStream)
- Constant Field Values
-
-
Constructor Details
-
JXHyperlink
public JXHyperlink()Creates a new instance of JXHyperlink with default parameters -
JXHyperlink
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 Details
-
setURI
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
- ifGraphicsEnvironment.isHeadless()
returnstrue
UnsupportedOperationException
- if the current platform doesn't support Desktop- See Also:
-
getUnclickedColor
Returns the foreground color for unvisited links.- Returns:
- Color for the hyper link if it has not yet been clicked.
-
setClickedColor
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.
-
getClickedColor
Returns the foreground color for visited links.- Returns:
- Color for the hyper link if it has already been clicked.
-
setUnclickedColor
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.
-
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
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:
-
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
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:
-
fireActionPerformed
Overridden to respect the overrulesActionOnClick property.
- Overrides:
fireActionPerformed
in classAbstractButton
-
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
Creates and returns a listener that will watch the changes of the providedAction
and will update JXHyperlink's properties accordingly.- Overrides:
createActionPropertyChangeListener
in classAbstractButton
-
configurePropertiesFromAction
Read all the essential properties from the providedAction
and apply it to theJXHyperlink
- Overrides:
configurePropertiesFromAction
in classAbstractButton
-
getUIClassID
Returns a string that specifies the name of the LaF class that renders this component.- Overrides:
getUIClassID
in classJButton
-
updateUI
public void updateUI()Notification from theUIManager
that the LaF has changed. Replaces the current UI object with the latest version from theUIManager
.
-