| java.lang.Object com.jgoodies.forms.builder.AbstractFormBuilder com.jgoodies.forms.builder.PanelBuilder
All known Subclasses: com.jgoodies.forms.builder.I15dPanelBuilder, com.jgoodies.forms.builder.ButtonBarBuilder, com.jgoodies.forms.builder.ButtonStackBuilder,
PanelBuilder | public class PanelBuilder extends AbstractFormBuilder (Code) | | An general purpose panel builder that uses the
FormLayout to lay out
JPanel s. It provides convenience methods to set a default
border and to add labels, titles and titled separators.
The PanelBuilder is the working horse for layouts when more specialized
builders like the
ButtonBarBuilder or
DefaultFormBuilder are
inappropriate.
The Forms tutorial includes several examples that present and compare
different style to build with the PanelBuilder: static row numbers vs. row
variable, explicit CellConstraints vs. builder cursor, static rows vs.
dynamically added rows. Also, you may check out the Tips & Tricks section
of the Forms HTML documentation.
The texts used in method #addLabel 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".
Example:
This example creates a panel with 3 columns and 3 rows.
FormLayout layout = new FormLayout("right:pref, 6dlu, 50dlu, 4dlu, default", // columns
"pref, 3dlu, pref, 3dlu, pref"); // rows
PanelBuilder builder = new PanelBuilder(layout);
CellConstraints cc = new CellConstraints();
builder.addLabel("&Title", cc.xy(1, 1));
builder.add(new JTextField(), cc.xywh(3, 1, 3, 1));
builder.addLabel("&Price", cc.xy(1, 3));
builder.add(new JTextField(), cc.xy(3, 3));
builder.addLabel("&Author", cc.xy(1, 5));
builder.add(new JTextField(), cc.xy(3, 5));
builder.add(new JButton("..."), cc.xy(5, 5));
return builder.getPanel();
author: Karsten Lentzsch version: $Revision: 1.2 $ See Also: com.jgoodies.forms.factories.ComponentFactory See Also: I15dPanelBuilder See Also: DefaultFormBuilder |
Method Summary | |
final public JLabel | add(JLabel label, CellConstraints labelConstraints, Component component, CellConstraints componentConstraints) Adds a label and component to the panel using the given cell constraints.
Sets the given label as the component label using
JLabel.setLabelFor(java.awt.Component) .
Note: The
CellConstraints objects for the label
and the component must be different. | final public JLabel | addLabel(String textWithMnemonic, CellConstraints constraints) Adds a textual label to the form using the specified constraints. | final public JLabel | addLabel(String textWithMnemonic, String encodedConstraints) Adds a textual label to the form using the specified constraints. | final public JLabel | addLabel(String textWithMnemonic) Adds a textual label to the form using the default constraints. | final public JLabel | addLabel(String textWithMnemonic, CellConstraints labelConstraints, Component component, CellConstraints componentConstraints) Adds a label and component to the panel using the given cell constraints.
Sets the given label as the component label using
JLabel.setLabelFor(java.awt.Component) .
Note: The
CellConstraints objects for the label
and the component must be different. | final public JComponent | addSeparator(String text, CellConstraints constraints) Adds a titled separator to the form using the specified constraints. | final public JComponent | addSeparator(String text, String encodedConstraints) Adds a titled separator to the form using the specified constraints. | final public JComponent | addSeparator(String text, int columnSpan) Adds a titled separator to the form that spans the specified columns. | final public JComponent | addSeparator(String text) Adds a titled separator to the form that spans all columns. | final public JLabel | addTitle(String text, CellConstraints constraints) Adds a title label to the form using the specified constraints. | final public JLabel | addTitle(String text, String encodedConstraints) Adds a title label to the form using the specified constraints. | final public JLabel | addTitle(String text) Adds a title label to the form using the default constraints. | final protected ComponentFactory | getComponentFactory() Returns the builder's component factory. | final public JPanel | getPanel() Returns the panel used to build the form. | final public void | setBorder(Border border) Sets the panel's border. | final public void | setComponentFactory(ComponentFactory newFactory) Sets a new component factory. | final public void | setDefaultDialogBorder() Sets the default dialog border. |
PanelBuilder | public PanelBuilder(FormLayout layout)(Code) | | Constructs an instance of PanelBuilder for the given
layout. Uses an instance of JPanel as layout container
with the given layout as layout manager.
Parameters: layout - the FormLayout to use |
PanelBuilder | public PanelBuilder(FormLayout layout, JPanel panel)(Code) | | Constructs an instance of PanelBuilder for the given
FormLayout and layout container.
Parameters: layout - the FormLayout to use Parameters: panel - the layout container to build on |
add | final public JLabel add(JLabel label, CellConstraints labelConstraints, Component component, CellConstraints componentConstraints)(Code) | | Adds a label and component to the panel using the given cell constraints.
Sets the given label as the component label using
JLabel.setLabelFor(java.awt.Component) .
Note: The
CellConstraints objects for the label
and the component must be different. Cell constraints are implicitly
cloned by the FormLayout when added to the container.
However, in this case you may be tempted to reuse a
CellConstraints object in the same way as with many other
builder methods that require a single CellConstraints
parameter. The pitfall is that the methods
CellConstraints.xy*(...) just set the coordinates but do
not create a new instance. And so the second invocation of
xy*(...) overrides the settings performed in the first
invocation before the object is cloned by the FormLayout .
Wrong:
CellConstraints cc = new CellConstraints();
builder.add(nameLabel, cc.xy(1, 7), // will be modified by the code below
nameField, cc.xy(3, 7) // sets the single instance to (3, 7)
);
Correct:
// Using a single CellConstraints instance and cloning
CellConstraints cc = new CellConstraints();
builder.add(nameLabel, (CellConstraints) cc.xy(1, 7).clone(), // cloned before the next modification
nameField, cc.xy(3, 7) // sets this instance to (3, 7)
);
// Using two CellConstraints instances
CellConstraints cc1 = new CellConstraints();
CellConstraints cc2 = new CellConstraints();
builder.add(nameLabel, cc1.xy(1, 7), // sets instance 1 to (1, 7)
nameField, cc2.xy(3, 7) // sets instance 2 to (3, 7)
);
Parameters: label - the label to add Parameters: labelConstraints - the label's cell constraints Parameters: component - the component to add Parameters: componentConstraints - the component's cell constraints the added label throws: IllegalArgumentException - if the same cell constraints instance is used for the labeland the component See Also: JLabel.setLabelFor(java.awt.Component) See Also: DefaultFormBuilder |
addLabel | final public JLabel addLabel(String textWithMnemonic, CellConstraints constraints)(Code) | | Adds a textual label to the form using the specified constraints.
addLabel("Name", cc.xy(1, 1)); // No Mnemonic
addLabel("N&ame", cc.xy(1, 1)); // Mnemonic is 'a'
addLabel("Look&&Feel", cc.xy(1, 1)); // No mnemonic, text is "look&feel"
Parameters: textWithMnemonic - the label's text - may contain a mnemonic marker Parameters: constraints - the label's cell constraints the new label See Also: ComponentFactory |
addLabel | final public JLabel addLabel(String textWithMnemonic, String encodedConstraints)(Code) | | Adds a textual label to the form using the specified constraints.
addLabel("Name", "1, 1"); // No Mnemonic
addLabel("N&ame", "1, 1"); // Mnemonic is 'a'
addLabel("Look&&Feel", "1, 1"); // No mnemonic, text is "look&feel"
Parameters: textWithMnemonic - the label's text - may contain a mnemonic marker Parameters: encodedConstraints - a string representation for the constraints the new label See Also: ComponentFactory |
addLabel | final public JLabel addLabel(String textWithMnemonic)(Code) | | Adds a textual label to the form using the default constraints.
addLabel("Name"); // No Mnemonic
addLabel("N&ame"); // Mnemonic is 'a'
addLabel("Look&&Feel"); // No mnemonic, text is "look&feel"
Parameters: textWithMnemonic - the label's text - may contain a mnemonic marker the new label See Also: ComponentFactory |
addLabel | final public JLabel addLabel(String textWithMnemonic, CellConstraints labelConstraints, Component component, CellConstraints componentConstraints)(Code) | | Adds a label and component to the panel using the given cell constraints.
Sets the given label as the component label using
JLabel.setLabelFor(java.awt.Component) .
Note: The
CellConstraints objects for the label
and the component must be different. Cell constraints are implicitly
cloned by the FormLayout when added to the container.
However, in this case you may be tempted to reuse a
CellConstraints object in the same way as with many other
builder methods that require a single CellConstraints
parameter. The pitfall is that the methods
CellConstraints.xy*(...) just set the coordinates but do
not create a new instance. And so the second invocation of
xy*(...) overrides the settings performed in the first
invocation before the object is cloned by the FormLayout .
Wrong:
builder.addLabel("&Name:", cc.xy(1, 7), // will be modified by the code below
nameField, cc.xy(3, 7) // sets the single instance to (3, 7)
);
Correct:
// Using a single CellConstraints instance and cloning
CellConstraints cc = new CellConstraints();
builder.addLabel("&Name:", (CellConstraints) cc.xy(1, 7).clone(), // cloned before the next modification
nameField, cc.xy(3, 7) // sets this instance to (3, 7)
);
// Using two CellConstraints instances
CellConstraints cc1 = new CellConstraints();
CellConstraints cc2 = new CellConstraints();
builder.addLabel("&Name:", cc1.xy(1, 7), // sets instance 1 to (1, 7)
nameField, cc2.xy(3, 7) // sets instance 2 to (3, 7)
);
Parameters: textWithMnemonic - the label's text - may contain a mnemonic marker Parameters: labelConstraints - the label's cell constraints Parameters: component - the component to add Parameters: componentConstraints - the component's cell constraints the added label throws: IllegalArgumentException - if the same cell constraints instance is used for the labeland the component See Also: JLabel.setLabelFor(java.awt.Component) See Also: ComponentFactory See Also: DefaultFormBuilder |
addSeparator | final public JComponent addSeparator(String text, CellConstraints constraints)(Code) | | Adds a titled separator to the form using the specified constraints.
Parameters: text - the separator title Parameters: constraints - the separator's cell constraints the added separator |
addSeparator | final public JComponent addSeparator(String text, String encodedConstraints)(Code) | | Adds a titled separator to the form using the specified constraints.
Parameters: text - the separator titel Parameters: encodedConstraints - a string representation for the constraints the added separator |
addSeparator | final public JComponent addSeparator(String text, int columnSpan)(Code) | | Adds a titled separator to the form that spans the specified columns.
Parameters: text - the separator titel Parameters: columnSpan - the number of columns the separator spans the added separator |
addSeparator | final public JComponent addSeparator(String text)(Code) | | Adds a titled separator to the form that spans all columns.
Parameters: text - the separator titel the added separator |
addTitle | final public JLabel addTitle(String text, CellConstraints constraints)(Code) | | Adds a title label to the form using the specified constraints.
Parameters: text - the label's title text Parameters: constraints - the separator's cell constraints the added title label See Also: ComponentFactory |
addTitle | final public JLabel addTitle(String text, String encodedConstraints)(Code) | | Adds a title label to the form using the specified constraints.
Parameters: text - the label's text Parameters: encodedConstraints - a string representation for the constraints the added title label See Also: ComponentFactory |
addTitle | final public JLabel addTitle(String text)(Code) | | Adds a title label to the form using the default constraints.
Parameters: text - the separator titel the added title label See Also: ComponentFactory |
getPanel | final public JPanel getPanel()(Code) | | Returns the panel used to build the form.
the panel used by this builder to build the form |
setBorder | final public void setBorder(Border border)(Code) | | Sets the panel's border.
Parameters: border - the border to set |
setDefaultDialogBorder | final public void setDefaultDialogBorder()(Code) | | Sets the default dialog border.
See Also: Borders |
|
|