Subscribe

RSS Feed (xml)

Powered By

Skin Design:
Free Blogger Skins

Powered by Blogger

Monday, November 19, 2007

define and declaration of BoxLayout, CardLayout, GridbagLayout in java

Layout, layo, becomes that layout manager for container p (a JPanel or Container) with the following.

   p.setLayout(layo);

Layouts (BoxLayout, CardLayout, GridbagLayout)

BoxLayout, Box - Lays out components in single row or col. Add "glue" and rigid areas to control spacing.
boxl = new BoxLayout(p, dir); Creates layout for container p. dir is BoxLayout.X_AXIS BoxLayout.Y_AXIS. Note: must have already created p.
box = new Box(dir); Creates a Container with vertical or horizontal layout.

p.add(widget); Adds widget to the next position.

These static Box methods create useful spacing components, which can be used in other layouts.

Box.createVerticalStrut(n) Creates a vertical spacer n pixels high.

Box.createHorizontalStrut(n) Creates a horizontal spacer n pixels wide.

Box.createRigidArea(dim) Spacer with width and height. dim is Dimension object, eg, new Dimension(10, 0).

Box.createHorizontalGlue() Creates expandable horizontal space.

Box.createVerticalGlue() Creates expandable vertical space.

new Box.Filler(mn,prf,mx) Creates a Box.Filler with min, preferred, and max sizes, each is Dimension object.
CardLayout - Panels are placed on top of each other like stack of cards -- only one visible at a time.

Used to produce installer or wizard style interface as steps in process, or to select palette. Use JTabbedPanel if user should have control.
crdMgr = new CardLayout(); Sets layout to CardLayout.
crdMgr = new CardLayout(h, v)); Also can specify horizontal and vertical padding.

p.add(cardPanel); Adds next card to panel.

p.add(cardPanel, name); Adds next card to panel. Use String name to select it later.

crdMgr.first(p); Panel p displays the first card in the layout of p.

crdMgr.next(p); Panel p displays the next card in the layout of p.

crdMgr.previous(p); Panel p displays the previous card in the layout of p.

crdMgr.last(p); Panel p displays the last card in the layout of p.

crdMgr.show(p, name); Panel p displays card with String name name in panel p.
GridBagLayout - Panel divided into rows&cols of possibly unequal size. Overall best, but difficult.
gbag = new GridBagLayout(); Creates GridBagLayout.

Must add with GridBagConstraints object (gbc below). Can (carefully) reuse same gbc object.
gbc = new GridBagConstraints(); Creates a new GridBagConsraints object.
gbc.gridx = i; Column, counting from 0. Always start at 0. Don't use default (RELATIVE).
gbc.gridy = i; Column, counting from 0. Always start at 0. Don't use default (RELATIVE)..
gbc.gridwidth = i; Number of columns wide (default 1).
gbc.gridheight = i; Number of rows high (default 1).
gbc.weightx = d; Relative horizontal space to allocate if container expands. Default 0.0.
gbc.weighty = d; Relative vertical space to allocate if container expands. Default 0.0.
gbc.fill = fill; How to expand comp if space larger than preferred size. fill can be GridBagConstraints.NONE, GridBagConstraints.VERTICAL, GridBagConstraints.HORIZONTAL, GridBagConstraints.BOTH.
gbc.anchor = anch; If component doesn't fill the space, tells how it should be aligned. anch can be one of these GridBagConstraints constants: CENTER (default), NORTH, SOUTH, NORTHEAST, SOUTHWEST, EAST, WEST, SOUTHEAST, NORTHWEST
gbc.insets = ins; Space around component. Eg, gbc.insets = new Insets(10,5,5,10);
gbc.ipadx = i; Horizontal padding internal to component. Can be negative!
gbc.ipady = i; Vertical padding internal to component. Can be negative!

No comments:

Post a Comment

Archives