public class GridBagLayout
Codename One port of the infamous GridBagLayout based on the Apache Harmony code. For new applications
we generally recommend a “native” Codename One layout such as com.codename1.ui.table.TableLayout
and recommend avoiding this layout. Its here for developers who are accustomed to it and need to port existing code.
Button button;
hi.setLayout(new GridBagLayout());
GridBagConstraints c = new GridBagConstraints();
//natural height, maximum width
c.fill = GridBagConstraints.HORIZONTAL;
button = new Button("Button 1");
c.weightx = 0.5;
c.fill = GridBagConstraints.HORIZONTAL;
c.gridx = 0;
c.gridy = 0;
hi.addComponent(c, button);
button = new Button("Button 2");
c.fill = GridBagConstraints.HORIZONTAL;
c.weightx = 0.5;
c.gridx = 1;
c.gridy = 0;
hi.addComponent(c, button);
button = new Button("Button 3");
c.fill = GridBagConstraints.HORIZONTAL;
c.weightx = 0.5;
c.gridx = 2;
c.gridy = 0;
hi.addComponent(c, button);
button = new Button("Long-Named Button 4");
c.fill = GridBagConstraints.HORIZONTAL;
c.ipady = 40; //make this component tall
c.weightx = 0.0;
c.gridwidth = 3;
c.gridx = 0;
c.gridy = 1;
hi.addComponent(c, button);
button = new Button("5");
c.fill = GridBagConstraints.HORIZONTAL;
c.ipady = 0; //reset to default
c.weighty = 1.0; //request any extra vertical space
c.anchor = GridBagConstraints.PAGE_END; //bottom of space
c.insets = new Insets(10,0,0,0); //top padding
c.gridx = 1; //aligned with button 2
c.gridwidth = 2; //2 columns wide
c.gridy = 2; //third row
hi.addComponent(c, button);
Fields
Constructors
public GridBagLayout() |
Methods
Inherited methods
Field details
MAXGRIDSIZE
protected static final int MAXGRIDSIZE = 512MINSIZE
protected static final int MINSIZE = 1PREFERREDSIZE
protected static final int PREFERREDSIZE = 2columnWeights
public double[] columnWeightsrowWeights
public double[] rowWeightscolumnWidths
public int[] columnWidthsrowHeights
public int[] rowHeightscomptable
protected Hashtable<Component, GridBagConstraints> comptabledefaultConstraints
protected GridBagConstraints defaultConstraintslayoutInfo
protected GridBagLayoutInfo layoutInfoConstructor details
GridBagLayout
public GridBagLayout()Method details
addLayoutComponent
public void addLayoutComponent(Object constraints, Component comp, Container c)Some layouts can optionally track the addition of elements with meta-data
that allows the user to “hint” on object positioning.
Parameters
constraintsObject- optional meta data information, like alignment orientation
compComponent- the added component to the layout
cContainer- the parent container
removeLayoutComponent
public void removeLayoutComponent(Component comp)Removes the component from the layout this operation is only useful if the
layout maintains references to components within it
Parameters
compComponent- the removed component from layout
getComponentConstraint
public Object getComponentConstraint(Component comp)Returns the optional component constraint
Parameters
compComponent- the component whose constraint should be returned
Returns
the optional component constraint
setConstraints
public void setConstraints(Component comp, GridBagConstraints constraints)invalidateLayout
public void invalidateLayout(Container target)getPreferredSize
public Dimension getPreferredSize(Container parent)Returns the container preferred size
Parameters
parentContainer- the parent container
Returns
the container preferred size
layoutContainer
public void layoutContainer(Container parent)Layout the given parent container children
Parameters
parentContainer- the given parent container
getLayoutDimensions
public int[][] getLayoutDimensions()getLayoutWeights
public double[][] getLayoutWeights()arrangeGrid
protected void arrangeGrid(Container parent)lookupConstraints
protected GridBagConstraints lookupConstraints(Component comp)adjustForGravity
protected void adjustForGravity(GridBagConstraints constraints, Rectangle r)