com.jgoodies.forms.factories

Class DefaultComponentFactory

public class DefaultComponentFactory extends Object implements ComponentFactory

A singleton implementation of the ComponentFactory interface that creates UI components as required by the PanelBuilder.

The texts used in methods #createLabel(String) and #createTitle(String) can contain an optional mnemonic marker. The mnemonic and mnemonic index are indicated by a single ampersand (&). For example "&Save", or "Save &as". To use the ampersand itself duplicate it, for example "Look&&Feel".

Version: $Revision: 1.12 $

Author: Karsten Lentzsch

Method Summary
JLabelcreateLabel(String textWithMnemonic)
Creates and returns a label with an optional mnemonic.

 createLabel("Name");       // No mnemonic
 createLabel("N&ame");      // Mnemonic is 'a'
 createLabel("Save &as");   // Mnemonic is the second 'a'
 createLabel("Look&&Feel"); // No mnemonic, text is Look&Feel
 
JComponentcreateSeparator(String textWithMnemonic)
Creates and returns a labeled separator with the label in the left-hand side.
JComponentcreateSeparator(String textWithMnemonic, int alignment)
Creates and returns a labeled separator.
JComponentcreateSeparator(JLabel label)
Creates and returns a labeled separator.
JLabelcreateTitle(String textWithMnemonic)
Creates and returns a title label that uses the foreground color and font of a TitledBorder.

 createTitle("Name");       // No mnemonic
 createTitle("N&ame");      // Mnemonic is 'a'
 createTitle("Save &as");   // Mnemonic is the second 'a'
 createTitle("Look&&Feel"); // No mnemonic, text is Look&Feel
 
static DefaultComponentFactorygetInstance()
Returns the sole instance of this factory class.
static voidsetTextAndMnemonic(JLabel label, String textWithMnemonic)
Sets the text of the given label and optionally a mnemonic.

Method Detail

createLabel

public JLabel createLabel(String textWithMnemonic)
Creates and returns a label with an optional mnemonic.

 createLabel("Name");       // No mnemonic
 createLabel("N&ame");      // Mnemonic is 'a'
 createLabel("Save &as");   // Mnemonic is the second 'a'
 createLabel("Look&&Feel"); // No mnemonic, text is Look&Feel
 

Parameters: textWithMnemonic the label's text - may contain an ampersand (&) to mark a mnemonic

Returns: an label with optional mnemonic

createSeparator

public JComponent createSeparator(String textWithMnemonic)
Creates and returns a labeled separator with the label in the left-hand side. Useful to separate paragraphs in a panel; often a better choice than a TitledBorder.

 createSeparator("Name");       // No mnemonic
 createSeparator("N&ame");      // Mnemonic is 'a'
 createSeparator("Save &as");   // Mnemonic is the second 'a'
 createSeparator("Look&&Feel"); // No mnemonic, text is Look&Feel
 

Parameters: textWithMnemonic the label's text - may contain an ampersand (&) to mark a mnemonic

Returns: a title label with separator on the side

createSeparator

public JComponent createSeparator(String textWithMnemonic, int alignment)
Creates and returns a labeled separator. Useful to separate paragraphs in a panel, which is often a better choice than a TitledBorder.

 final int LEFT = SwingConstants.LEFT;
 createSeparator("Name",       LEFT); // No mnemonic
 createSeparator("N&ame",      LEFT); // Mnemonic is 'a'
 createSeparator("Save &as",   LEFT); // Mnemonic is the second 'a'
 createSeparator("Look&&Feel", LEFT); // No mnemonic, text is Look&Feel
 

Parameters: textWithMnemonic the label's text - may contain an ampersand (&) to mark a mnemonic alignment text alignment, one of SwingConstants.LEFT, SwingConstants.CENTER, SwingConstants.RIGHT

Returns: a separator with title label

createSeparator

public JComponent createSeparator(JLabel label)
Creates and returns a labeled separator. Useful to separate paragraphs in a panel, which is often a better choice than a TitledBorder.

The label's position is determined by the label's horizontal alignment, which must be one of: SwingConstants.LEFT, SwingConstants.CENTER, SwingConstants.RIGHT.

TODO: Since this method has been marked public in version 1.0.6, we need to precisely describe the semantic of this method.

TODO: Check if we can relax the constraint for the label alignment and also accept LEADING and TRAILING.

Parameters: label the title label component

Returns: a separator with title label

Throws: NullPointerException if the label is null IllegalArgumentException if the label's horizontal alignment is not one of: SwingConstants.LEFT, SwingConstants.CENTER, SwingConstants.RIGHT.

Since: 1.0.6

createTitle

public JLabel createTitle(String textWithMnemonic)
Creates and returns a title label that uses the foreground color and font of a TitledBorder.

 createTitle("Name");       // No mnemonic
 createTitle("N&ame");      // Mnemonic is 'a'
 createTitle("Save &as");   // Mnemonic is the second 'a'
 createTitle("Look&&Feel"); // No mnemonic, text is Look&Feel
 

Parameters: textWithMnemonic the label's text - may contain an ampersand (&) to mark a mnemonic

Returns: an emphasized title label

getInstance

public static DefaultComponentFactory getInstance()
Returns the sole instance of this factory class.

Returns: the sole instance of this factory class

setTextAndMnemonic

public static void setTextAndMnemonic(JLabel label, String textWithMnemonic)
Sets the text of the given label and optionally a mnemonic. The given text may contain an ampersand (&) to mark a mnemonic and its position. Such a marker indicates that the character that follows the ampersand shall be the mnemonic. If you want to use the ampersand itself duplicate it, for example "Look&&Feel".

Parameters: label the label that gets a mnemonic textWithMnemonic the text with optional mnemonic marker

Since: 1.2

Copyright © 2002-2008 JGoodies Karsten Lentzsch. All Rights Reserved.