com.jgoodies.forms.factories

Class DefaultComponentFactory

Implemented Interfaces:
ComponentFactory

public class DefaultComponentFactory
extends Object
implements ComponentFactory

A singleton implementaton 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&quot.

Version:
$Revision: 1.7 $
Author:
Karsten Lentzsch

Method Summary

JLabel
createLabel(String textWithMnemonic)
Creates and returns a label with an optional mnemonic.
JComponent
createSeparator(JLabel label)
Creates and returns a labeled separator.
JComponent
createSeparator(String textWithMnemonic)
Creates and returns a labeled separator with the label in the left-hand side.
JComponent
createSeparator(String textWithMnemonic, int alignment)
Creates and returns a labeled separator.
JLabel
createTitle(String textWithMnemonic)
Creates and returns a title label that uses the foreground color and font of a TitledBorder.
static DefaultComponentFactory
getInstance()
Returns the sole instance of this factory class.

Method Details

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
 
Specified by:
createLabel in interface ComponentFactory
Parameters:
textWithMnemonic - the label's text - may contain an ampersand (&) to mark a mnemonic
Returns:
an label with optional mnemonic

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
Since:
1.0.6

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
 
Specified by:
createSeparator in interface ComponentFactory
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

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
 
Specified by:
createTitle in interface ComponentFactory
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

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