public class JXTipOfTheDay extends JXPanel
Tips are retrieved from the TipOfTheDayModel.
In the most common usage, a tip (as returned by
TipOfTheDayModel.Tip.getTip()) is just a
String. However, the return type of this method is actually
Object. Its interpretation depends on its type:
Component is displayed in the dialog.
Icon is wrapped in a JLabel and
displayed in the dialog.
String by calling its
toString method. The result is wrapped in a
JEditorPane or JTextArea and displayed.
Example:
Let's consider a file tips.properties with the following content:
Additionally, JXTipOfTheDay finds its tips in its TipOfTheDayModel.
Such model can be programmatically built using DefaultTipOfTheDayModel
and DefaultTip but
the TipLoader provides a convenient method to
build a model and its tips from a Properties object.
To load and display the tips:
tip.1.description=This is the first time! Plain text.
tip.2.description=<html>This is <b>another tip</b>, it uses HTML!
tip.3.description=A third one
Properties tips = new Properties();
tips.load(new FileInputStream("tips.properties"));
TipOfTheDayModel model = TipLoader.load(tips);
JXTipOfTheDay totd = new JXTipOfTheDay(model);
totd.showDialog(someParentComponent);
JXTipOfTheDay features an option enabling the end-user
to choose to not display the "Tip Of The Day" dialog. This user choice can be stored
in the user Preferences but JXTipOfTheDay also
supports custom storage through the JXTipOfTheDay.ShowOnStartupChoice interface.
In this code, the first time showDialog is called, the dialog will be made
visible and the user will have the choice to not display it again in the future
(usually this is controlled by a checkbox "Show tips on startup"). If the user
unchecks the option, subsequent calls to showDialog will not display the dialog.
As the choice is saved in the user Preferences, it will persist when the application is relaunched.
Preferences userPreferences = Preferences.userRoot().node("myApp");
totd.showDialog(someParentComponent, userPreferences);
| Modifier and Type | Class and Description |
|---|---|
static interface |
JXTipOfTheDay.ShowOnStartupChoice
Used in conjunction with the
showDialog(Component, ShowOnStartupChoice) to save the
"Show tips on startup" choice. |
javax.swing.JPanel.AccessibleJPaneljavax.swing.JComponent.AccessibleJComponent| Modifier and Type | Field and Description |
|---|---|
static java.lang.String |
CURRENT_TIP_CHANGED_KEY
Used when generating PropertyChangeEvents for the "currentTip" property
|
static java.lang.String |
PREFERENCE_KEY
Key used to store the status of the "Show tip on startup" checkbox"
|
static java.lang.String |
uiClassID
JXTipOfTheDay pluggable UI key swingx/TipOfTheDayUI
|
accessibleContext, listenerList, TOOL_TIP_TEXT_KEY, ui, UNDEFINED_CONDITION, WHEN_ANCESTOR_OF_FOCUSED_COMPONENT, WHEN_FOCUSED, WHEN_IN_FOCUSED_WINDOW| Constructor and Description |
|---|
JXTipOfTheDay()
Constructs a new
JXTipOfTheDay with an empty
TipOfTheDayModel |
JXTipOfTheDay(TipOfTheDayModel model)
Constructs a new
JXTipOfTheDay showing tips from the given
TipOfTheDayModel. |
| Modifier and Type | Method and Description |
|---|---|
protected javax.swing.JDialog |
createDialog(java.awt.Component parentComponent,
JXTipOfTheDay.ShowOnStartupChoice choice)
|
static void |
forceShowOnStartup(java.util.prefs.Preferences showOnStartupPref)
Removes the value set for "ShowTipOnStartup" in the given Preferences to
ensure the dialog shown by a later call to
showDialog(Component, Preferences) will be visible to the user. |
int |
getCurrentTip() |
TipOfTheDayModel |
getModel() |
TipOfTheDayUI |
getUI()
Gets the UI object which implements the L&F for this component.
|
java.lang.String |
getUIClassID()
Returns the name of the L&F class that renders this component.
|
static boolean |
isShowingOnStartup(java.util.prefs.Preferences showOnStartupPref) |
void |
nextTip()
Shows the next tip in the list.
|
void |
previousTip()
Shows the previous tip in the list.
|
void |
setCurrentTip(int currentTip)
Sets the index of the tip to show
|
void |
setModel(TipOfTheDayModel model) |
void |
setUI(TipOfTheDayUI ui)
Sets the L&F object that renders this component.
|
void |
showDialog(java.awt.Component parentComponent)
Pops up a "Tip of the day" dialog.
|
boolean |
showDialog(java.awt.Component parentComponent,
JXTipOfTheDay.ShowOnStartupChoice choice)
Pops up a "Tip of the day" dialog.
|
boolean |
showDialog(java.awt.Component parentComponent,
JXTipOfTheDay.ShowOnStartupChoice choice,
boolean force)
Pops up a "Tip of the day" dialog.
|
boolean |
showDialog(java.awt.Component parentComponent,
java.util.prefs.Preferences showOnStartupPref)
Pops up a "Tip of the day" dialog.
|
boolean |
showDialog(java.awt.Component parentComponent,
java.util.prefs.Preferences showOnStartupPref,
boolean force)
Pops up a "Tip of the day" dialog.
|
void |
updateUI()
Notification from the
UIManager that the L&F has changed. |
getAlpha, getBackgroundPainter, getEffectiveAlpha, getPreferredScrollableViewportSize, getScrollableBlockIncrement, getScrollableTracksViewportHeight, getScrollableTracksViewportWidth, getScrollableUnitIncrement, isInheritAlpha, isPaintBorderInsets, paint, paintComponent, setAlpha, setBackgroundPainter, setInheritAlpha, setPaintBorderInsets, setScrollableTracksViewportHeight, setScrollableTracksViewportWidthaddAncestorListener, 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, isPaintingOrigin, isPaintingTile, isRequestFocusEnabled, isValidateRoot, paintBorder, paintChildren, 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, setBackground, setBorder, setComponentPopupMenu, setDebugGraphicsOptions, setDefaultLocale, setDoubleBuffered, setEnabled, setFocusTraversalKeys, setFont, setForeground, setInheritsPopupMenu, setInputMap, setInputVerifier, setMaximumSize, setMinimumSize, setNextFocusableComponent, setOpaque, setPreferredSize, setRequestFocusEnabled, setToolTipText, setTransferHandler, setUI, setVerifyInputWhenFocusTarget, setVisible, unregisterKeyboardAction, updateadd, 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, validateTreeaction, 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, 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, transferFocusBackward, transferFocusUpCyclepublic static final java.lang.String uiClassID
public static final java.lang.String PREFERENCE_KEY
public static final java.lang.String CURRENT_TIP_CHANGED_KEY
public JXTipOfTheDay()
JXTipOfTheDay with an empty
TipOfTheDayModelpublic JXTipOfTheDay(TipOfTheDayModel model)
JXTipOfTheDay showing tips from the given
TipOfTheDayModel.model - public void updateUI()
UIManager that the L&F has changed.
Replaces the current UI object with the latest version from the
UIManager.updateUI in class javax.swing.JPanelJComponent.updateUI()public void setUI(TipOfTheDayUI ui)
ui - the TipOfTheDayUI L&F objectUIDefaults.getUI(javax.swing.JComponent)public TipOfTheDayUI getUI()
getUI in class javax.swing.JPanelpublic java.lang.String getUIClassID()
getUIClassID in class javax.swing.JPaneluiClassIDJComponent.getUIClassID(),
UIDefaults.getUI(javax.swing.JComponent)public TipOfTheDayModel getModel()
public void setModel(TipOfTheDayModel model)
public int getCurrentTip()
public void setCurrentTip(int currentTip)
currentTip - java.lang.IllegalArgumentException - if currentTip is not within the bounds [0,
getModel().getTipCount()[.public void nextTip()
public void previousTip()
public void showDialog(java.awt.Component parentComponent)
throws java.awt.HeadlessException
parentComponent - java.awt.HeadlessException - if GraphicsEnvironment.isHeadless() returns true.GraphicsEnvironment.isHeadless()public boolean showDialog(java.awt.Component parentComponent,
java.util.prefs.Preferences showOnStartupPref)
throws java.awt.HeadlessException
parentComponent - showOnStartupPref - java.awt.HeadlessException - if GraphicsEnvironment.isHeadless() returns true.java.lang.IllegalArgumentException - if showOnStartupPref is nullGraphicsEnvironment.isHeadless()public boolean showDialog(java.awt.Component parentComponent,
java.util.prefs.Preferences showOnStartupPref,
boolean force)
throws java.awt.HeadlessException
parentComponent - showOnStartupPref - force - if true, the dialog is displayed even if the Preferences is set to
hide the dialogjava.awt.HeadlessException - if GraphicsEnvironment.isHeadless() returns true.java.lang.IllegalArgumentException - if showOnStartupPref is nullGraphicsEnvironment.isHeadless()public boolean showDialog(java.awt.Component parentComponent,
JXTipOfTheDay.ShowOnStartupChoice choice)
choice is not null, the method first checks if
JXTipOfTheDay.ShowOnStartupChoice.isShowingOnStartup() is true before showing the
dialog.
Additionally, it saves the state of the "Show tips on startup" checkbox
using the given JXTipOfTheDay.ShowOnStartupChoice object.parentComponent - choice - java.awt.HeadlessException - if GraphicsEnvironment.isHeadless() returns true.GraphicsEnvironment.isHeadless()public boolean showDialog(java.awt.Component parentComponent,
JXTipOfTheDay.ShowOnStartupChoice choice,
boolean force)
choice is not null, the method first checks if
force is true or if
JXTipOfTheDay.ShowOnStartupChoice.isShowingOnStartup() is true before showing the
dialog.
Additionally, it saves the state of the "Show tips on startup" checkbox
using the given JXTipOfTheDay.ShowOnStartupChoice object.parentComponent - choice - force - if true, the dialog is displayed even if
JXTipOfTheDay.ShowOnStartupChoice.isShowingOnStartup() is falsejava.awt.HeadlessException - if GraphicsEnvironment.isHeadless() returns true.GraphicsEnvironment.isHeadless()public static boolean isShowingOnStartup(java.util.prefs.Preferences showOnStartupPref)
showOnStartupPref - public static void forceShowOnStartup(java.util.prefs.Preferences showOnStartupPref)
showDialog(Component, Preferences) will be visible to the user.showOnStartupPref - protected javax.swing.JDialog createDialog(java.awt.Component parentComponent,
JXTipOfTheDay.ShowOnStartupChoice choice)
TipOfTheDayUI.createDialog(Component, JXTipOfTheDay.ShowOnStartupChoice).
This method can be overriden in order to control things such as the
placement of the dialog or its title.parentComponent - choice -