Class DefaultComponentFactory

  • All Implemented Interfaces:
    ComponentFactory

    public final class DefaultComponentFactory
    extends java.lang.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$
    Author:
    Karsten Lentzsch
    • Method Summary

      All Methods Static Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      javax.swing.JLabel createLabel​(java.lang.String textWithMnemonic)
      Creates and returns a label with an optional mnemonic.
      javax.swing.JComponent createSeparator​(java.lang.String textWithMnemonic)
      Creates and returns a labeled separator with the label in the left-hand side.
      javax.swing.JComponent createSeparator​(java.lang.String textWithMnemonic, int alignment)
      Creates and returns a labeled separator.
      javax.swing.JComponent createSeparator​(javax.swing.JLabel label)
      Creates and returns a labeled separator.
      javax.swing.JLabel createTitle​(java.lang.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.
      • Methods inherited from class java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
    • Method Detail

      • getInstance

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

        public javax.swing.JLabel createLabel​(java.lang.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
      • createTitle

        public javax.swing.JLabel createTitle​(java.lang.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
      • createSeparator

        public javax.swing.JComponent createSeparator​(java.lang.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 javax.swing.JComponent createSeparator​(java.lang.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
      • createSeparator

        public javax.swing.JComponent createSeparator​(javax.swing.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:
        java.lang.NullPointerException - if the label is null
        Since:
        1.0.6