org.jdesktop.swingx.prompt
Class PromptSupport

java.lang.Object
  extended by org.jdesktop.swingx.prompt.PromptSupport

public final class PromptSupport
extends java.lang.Object

Sets prompt text, foreground, background and PromptSupport.FocusBehavior properties on a JTextComponent by calling JComponent.putClientProperty(Object, Object). These properties are used by PromptTextUI instances to render the prompt of a text component.

This class is used by JXTextField, JXFormattedTextField and JXTextArea to get and set prompt properties. PromptTextUI retrieves these properties using PromptSupport.

Author:
Peter Weishapl , Karl Schaefer
See Also:
JXTextField, JXFormattedTextField, JXTextArea, PromptTextUI

Nested Class Summary
static class PromptSupport.FocusBehavior
           Determines how the JTextComponent is rendered when focused and no text is present.
 
Field Summary
static java.lang.String BACKGROUND
          The prompt background property.
static java.lang.String BACKGROUND_PAINTER
          The prompt background property.
static java.lang.String FOCUS_BEHAVIOR
          The focus behavior property.
static java.lang.String FONT_STYLE
          The font style property, if different from the components font.
static java.lang.String FOREGROUND
          The color of the prompt text property.
static java.lang.String PROMPT
          The prompt text property.
 
Method Summary
static java.awt.Color getBackground(javax.swing.text.JTextComponent textComponent)
          Get the background color of the textComponent, when no text is present.
static
<T extends javax.swing.text.JTextComponent>
Painter<? super T>
getBackgroundPainter(T textComponent)
          Get the background painter of the textComponent, when no text is present.
static PromptSupport.FocusBehavior getFocusBehavior(javax.swing.text.JTextComponent textComponent)
          Get the PromptSupport.FocusBehavior of textComponent.
static java.lang.Integer getFontStyle(javax.swing.text.JTextComponent textComponent)
          Returns the font style of the prompt text, or null if the prompt's font style should not differ from the textComponents font.
static java.awt.Color getForeground(javax.swing.text.JTextComponent textComponent)
          Get the foreground color of the prompt text.
static java.lang.String getPrompt(javax.swing.text.JTextComponent textComponent)
          Get the prompt text of textComponent.
static void init(java.lang.String promptText, java.awt.Color promptForeground, java.awt.Color promptBackground, javax.swing.text.JTextComponent textComponent)
           Convenience method to set the promptText and promptTextColor on a JTextComponent.
static void setBackground(java.awt.Color background, javax.swing.text.JTextComponent textComponent)
           Sets the prompts background color on textComponent and repaints the component to reflect the changes.
static
<T extends javax.swing.text.JTextComponent>
void
setBackgroundPainter(Painter<? super T> background, T textComponent)
           Sets the prompts background painter on textComponent and repaints the component to reflect the changes.
static void setFocusBehavior(PromptSupport.FocusBehavior focusBehavior, javax.swing.text.JTextComponent textComponent)
          Sets the PromptSupport.FocusBehavior on textComponent and repaints the component to reflect the changes, if it is the focus owner.
static void setFontStyle(java.lang.Integer fontStyle, javax.swing.text.JTextComponent textComponent)
           Set the style of the prompt font, if different from the textComponents font.
static void setForeground(java.awt.Color promptTextColor, javax.swing.text.JTextComponent textComponent)
          Sets the foreground color of the prompt on textComponent and repaints the component to reflect the changes.
static void setPrompt(java.lang.String promptText, javax.swing.text.JTextComponent textComponent)
           Sets the prompt text on textComponent.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

PROMPT

public static final java.lang.String PROMPT
The prompt text property.

See Also:
Constant Field Values

FOREGROUND

public static final java.lang.String FOREGROUND
The color of the prompt text property.

See Also:
Constant Field Values

BACKGROUND

public static final java.lang.String BACKGROUND
The prompt background property.

See Also:
Constant Field Values

BACKGROUND_PAINTER

public static final java.lang.String BACKGROUND_PAINTER
The prompt background property.

See Also:
Constant Field Values

FOCUS_BEHAVIOR

public static final java.lang.String FOCUS_BEHAVIOR
The focus behavior property.

See Also:
Constant Field Values

FONT_STYLE

public static final java.lang.String FONT_STYLE
The font style property, if different from the components font.

See Also:
Constant Field Values
Method Detail

init

public static void init(java.lang.String promptText,
                        java.awt.Color promptForeground,
                        java.awt.Color promptBackground,
                        javax.swing.text.JTextComponent textComponent)

Convenience method to set the promptText and promptTextColor on a JTextComponent.

If stayOnUIChange is true, The prompt support will stay installed, even when the text components UI changes. See #install(JTextComponent, boolean).

Parameters:
promptText -
promptForeground -
promptBackground -
textComponent -

getFocusBehavior

public static PromptSupport.FocusBehavior getFocusBehavior(javax.swing.text.JTextComponent textComponent)
Get the PromptSupport.FocusBehavior of textComponent.

Parameters:
textComponent -
Returns:
the PromptSupport.FocusBehavior or PromptSupport.FocusBehavior.HIDE_PROMPT if none is set

setFocusBehavior

public static void setFocusBehavior(PromptSupport.FocusBehavior focusBehavior,
                                    javax.swing.text.JTextComponent textComponent)
Sets the PromptSupport.FocusBehavior on textComponent and repaints the component to reflect the changes, if it is the focus owner.

Parameters:
focusBehavior -
textComponent -

getPrompt

public static java.lang.String getPrompt(javax.swing.text.JTextComponent textComponent)
Get the prompt text of textComponent.

Parameters:
textComponent -
Returns:
the prompt text

setPrompt

public static void setPrompt(java.lang.String promptText,
                             javax.swing.text.JTextComponent textComponent)

Sets the prompt text on textComponent. Also sets the tooltip text to the prompt text if textComponent has no tooltip text or the current tooltip text is the same as the current prompt text.

Calls #install(JTextComponent) to ensure that the textComponents UI is wrapped by the appropriate PromptTextUI.

Parameters:
promptText -
textComponent -

getForeground

public static java.awt.Color getForeground(javax.swing.text.JTextComponent textComponent)
Get the foreground color of the prompt text. If no color has been set, the textComponents disabled text color will be returned.

Parameters:
textComponent -
Returns:
the color of the prompt text or JTextComponent.getDisabledTextColor() if none is set

setForeground

public static void setForeground(java.awt.Color promptTextColor,
                                 javax.swing.text.JTextComponent textComponent)
Sets the foreground color of the prompt on textComponent and repaints the component to reflect the changes. This color will be used when no text is present.

Parameters:
promptTextColor -
textComponent -

getBackground

public static java.awt.Color getBackground(javax.swing.text.JTextComponent textComponent)
Get the background color of the textComponent, when no text is present. If no color has been set, the textComponents background color color will be returned.

Parameters:
textComponent -
Returns:
the the background color of the text component, when no text is present

setBackground

public static void setBackground(java.awt.Color background,
                                 javax.swing.text.JTextComponent textComponent)

Sets the prompts background color on textComponent and repaints the component to reflect the changes. This background color will only be used when no text is present.

Calls #install(JTextComponent) to ensure that the textComponents UI is wrapped by the appropriate PromptTextUI.

Parameters:
background -
textComponent -

getBackgroundPainter

public static <T extends javax.swing.text.JTextComponent> Painter<? super T> getBackgroundPainter(T textComponent)
Get the background painter of the textComponent, when no text is present. If no painter has been set, then null will be returned.

Parameters:
textComponent -
Returns:
the background painter of the text component

setBackgroundPainter

public static <T extends javax.swing.text.JTextComponent> void setBackgroundPainter(Painter<? super T> background,
                                                                                    T textComponent)

Sets the prompts background painter on textComponent and repaints the component to reflect the changes. This background painter will only be used when no text is present.

Calls #install(JTextComponent) to ensure that the textComponents UI is wrapped by the appropriate PromptTextUI.

Parameters:
background -
textComponent -

setFontStyle

public static void setFontStyle(java.lang.Integer fontStyle,
                                javax.swing.text.JTextComponent textComponent)

Set the style of the prompt font, if different from the textComponents font.

Allowed values are Font.PLAIN, Font.ITALIC, Font.BOLD, a combination of Font.BOLD and Font.ITALIC or null if the prompt font should be the same as the textComponents font.

Parameters:
fontStyle -
textComponent -

getFontStyle

public static java.lang.Integer getFontStyle(javax.swing.text.JTextComponent textComponent)
Returns the font style of the prompt text, or null if the prompt's font style should not differ from the textComponents font.

Parameters:
textComponent -
Returns:
font style of the prompt text


Copyright © 2010. All Rights Reserved.