layout managerslayout managers - index-of.co.ukindex-of.co.uk/java/10-layout-managers.pdfjsf 2.0,...

22
© 2012 Marty Hall Layout Managers Layout Managers Arranging Elements in Windows Originals of Slides and Source Code for Examples: http://courses.coreservlets.com/Course-Materials/java.html Customized Java EE Training: http://courses.coreservlets.com/ Java 6 or 7, JSF 2.0, PrimeFaces, Servlets, JSP, Ajax, Spring, Hibernate, RESTful Web Services, Android. Developed and taught by well-known author and developer. At public venues or onsite at your location. 3 © 2012 Marty Hall For live Java EE training, please see training courses at http://courses.coreservlets.com/. at http://courses.coreservlets.com/. JSF 2.0, PrimeFaces, Servlets, JSP, Ajax (with jQuery), GWT, Android development, Java 6 and 7 programming, SOAP-based and RESTful Web Services, Spring, Hibernate/JPA, XML, Hadoop, and customized combinations of topics. Taught by the author of Core Servlets and JSP, More Servlets and JSP and this tutorial Available at public Customized Java EE Training: http://courses.coreservlets.com/ Java 6 or 7, JSF 2.0, PrimeFaces, Servlets, JSP, Ajax, Spring, Hibernate, RESTful Web Services, Android. Developed and taught by well-known author and developer. At public venues or onsite at your location. Servlets and JSP, and this tutorial. Available at public venues, or customized versions can be held on-site at your organization. Contact [email protected] for details.

Upload: others

Post on 03-Jan-2021

14 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Layout ManagersLayout Managers - index-of.co.ukindex-of.co.uk/Java/10-Layout-Managers.pdfJSF 2.0, PrimeFaces, Servlets, JSP, Ajax (with jQuery), GWT, Android development, Java 6 and

© 2012 Marty Hall

Layout ManagersLayout Managers Arranging Elements in Windows

Originals of Slides and Source Code for Examples:http://courses.coreservlets.com/Course-Materials/java.html

Customized Java EE Training: http://courses.coreservlets.com/Java 6 or 7, JSF 2.0, PrimeFaces, Servlets, JSP, Ajax, Spring, Hibernate, RESTful Web Services, Android. Developed and taught by well-known author and developer. At public venues or onsite at your location.3

© 2012 Marty Hall

For live Java EE training, please see training courses at http://courses.coreservlets.com/. at http://courses.coreservlets.com/.

JSF 2.0, PrimeFaces, Servlets, JSP, Ajax (with jQuery), GWT, Android development, Java 6 and 7 programming,

SOAP-based and RESTful Web Services, Spring, Hibernate/JPA, gXML, Hadoop, and customized combinations of topics.

Taught by the author of Core Servlets and JSP, More Servlets and JSP and this tutorial Available at public

Customized Java EE Training: http://courses.coreservlets.com/Java 6 or 7, JSF 2.0, PrimeFaces, Servlets, JSP, Ajax, Spring, Hibernate, RESTful Web Services, Android. Developed and taught by well-known author and developer. At public venues or onsite at your location.

Servlets and JSP, and this tutorial. Available at public venues, or customized versions can be held on-site at your

organization. Contact [email protected] for details.

Page 2: Layout ManagersLayout Managers - index-of.co.ukindex-of.co.uk/Java/10-Layout-Managers.pdfJSF 2.0, PrimeFaces, Servlets, JSP, Ajax (with jQuery), GWT, Android development, Java 6 and

Topics in This Section

• How layout managers simplify interface d idesign

• Standard layout managersFl L B d L C dL G idL– FlowLayout, BorderLayout, CardLayout, GridLayout, GridBagLayout, BoxLayout

• Positioning components manuallyPositioning components manually• Strategies for using layout managers

effectivelyy

5

Layout Managers

• Assigned to each Container– Give sizes and positions to components in the window– Helpful for windows whose size changes or that display

on multiple operating systemson multiple operating systems

• Relatively easy for simple layouts – But, it is surprisingly hard to get complex layouts with a , p g y g p y

single layout manager

• Controlling complex layouts– Use nested containers (each with its own layout manager)– Use invisible components and layout manager options

Write your own layout manager– Write your own layout manager– Turn some layout managers off and arrange

some things manually6

Page 3: Layout ManagersLayout Managers - index-of.co.ukindex-of.co.uk/Java/10-Layout-Managers.pdfJSF 2.0, PrimeFaces, Servlets, JSP, Ajax (with jQuery), GWT, Android development, Java 6 and

© 2012 Marty Hall

Simple LayoutSimple Layout Managersg

Customized Java EE Training: http://courses.coreservlets.com/Java 6 or 7, JSF 2.0, PrimeFaces, Servlets, JSP, Ajax, Spring, Hibernate, RESTful Web Services, Android. Developed and taught by well-known author and developer. At public venues or onsite at your location.7

FlowLayout

• Default layout for Panel, JPanel, and Applet• Behavior

– Resizes components to their preferred sizePl i l f i h b– Places components in rows left to right, top to bottom

• Rows are centered by default

• ConstructorsConstructors– FlowLayout()

• Centers each row and keeps 5 pixels between entries in a row and between rows

– FlowLayout(int alignment)• Same 5 pixels spacing, but changes the alignment of the rows• FlowLayout.LEFT, FlowLayout.RIGHT, FlowLayout.CENTER

– FlowLayout(int alignment, int hGap, int vGap)• Specify the alignment as well as the horizontal and vertical spacing between

components (in pixels)8

Page 4: Layout ManagersLayout Managers - index-of.co.ukindex-of.co.uk/Java/10-Layout-Managers.pdfJSF 2.0, PrimeFaces, Servlets, JSP, Ajax (with jQuery), GWT, Android development, Java 6 and

FlowLayout: Example

public class FlowTest extends Applet {bli id i it() {public void init() {// setLayout(new FlowLayout()); [Default]for(int i=1; i<6; i++) {

add(new Button("Button " + i));}

}}}

9

BorderLayout

• Default for Frame, JFrame, Dialog, JApplet• Behavior

– Divides the Container into five regionsE h i i id tifi d b di• Each region is identified by a corresponding BorderLayout constant– NORTH, SOUTH, EAST, WEST, and CENTER

NORTH d SOUTH h f d h i h f h– NORTH and SOUTH respect the preferred height of the component

– EAST and WEST respect the preferred width of the S a d W S espect t e p e e ed w dt o t ecomponent

– CENTER is given the remaining space

I ll i i f fi t• Is allowing a maximum of five components too restrictive? Why not?

10

Page 5: Layout ManagersLayout Managers - index-of.co.ukindex-of.co.uk/Java/10-Layout-Managers.pdfJSF 2.0, PrimeFaces, Servlets, JSP, Ajax (with jQuery), GWT, Android development, Java 6 and

BorderLayout (Continued)

• Constructors– BorderLayout()

• Border layout with no gaps between components

– BorderLayout(int hGap int vGap)– BorderLayout(int hGap, int vGap)• Border layout with the specified empty pixels between

regions

• Adding Components– add(component, BorderLayout.REGION)( p , y )– Always specify the region in which to add the component

• CENTER is the default, but specify it explicitly to avoid confusion with other layout managersconfusion with other layout managers

11

BorderLayout: Example

public class BorderTest extends Applet {public void init() {public void init() {

setLayout(new BorderLayout());add(new Button("Button 1"), BorderLayout.NORTH);add(new Button("Button 2") BorderLayout SOUTH);add(new Button( Button 2 ), BorderLayout.SOUTH);add(new Button("Button 3"), BorderLayout.EAST);add(new Button("Button 4"), BorderLayout.WEST);add(new Button("Button 5"), BorderLayout.CENTER);add(new Button( Button 5 ), BorderLayout.CENTER);

}}

12

Page 6: Layout ManagersLayout Managers - index-of.co.ukindex-of.co.uk/Java/10-Layout-Managers.pdfJSF 2.0, PrimeFaces, Servlets, JSP, Ajax (with jQuery), GWT, Android development, Java 6 and

GridLayout

• Behavior– Divides window into equal-sized rectangles based upon

the number of rows and columns specified• Items placed into cells left-to-right top-to-bottom basedItems placed into cells left to right, top to bottom, based

on the order added to the container

– Ignores the preferred size of the component; each component is resized to fit into its grid cellcomponent is resized to fit into its grid cell

– Too few components results in blank cells– Too many components results in extra columnsy p

13

GridLayout (Continued)

• Constructors– GridLayout()

• Creates a single row with one column allocated per componentp

– GridLayout(int rows, int cols)• Divides the window into the specified number of rows and• Divides the window into the specified number of rows and

columns• Either rows or cols (but not both) can be zero

– GridLayout(int rows, int cols, int hGap, int vGap)

• Uses the specified gaps between cells

14

Page 7: Layout ManagersLayout Managers - index-of.co.ukindex-of.co.uk/Java/10-Layout-Managers.pdfJSF 2.0, PrimeFaces, Servlets, JSP, Ajax (with jQuery), GWT, Android development, Java 6 and

GridLayout, Example

public class GridTest extends Applet {public void init() {public void init() {

setLayout(new GridLayout(2,3)); // 2 rows, 3 colsadd(new Button("Button One"));add(new Button("Button Two"));add(new Button( Button Two ));add(new Button("Button Three"));add(new Button("Button Four"));add(new Button("Button Five"));add(new Button( Button Five ));add(new Button("Button Six"));

}}}

15

CardLayout

• Behavior– Stacks components on top of each other, displaying the

top one– Associates a name with each component in window– Associates a name with each component in window

Panel cardPanel;CardLayout layout new CardLayout();cardPanel setLayout(layout);cardPanel.setLayout(layout);...cardPanel.add("Card 1", component1);cardPanel add("Card 2" component2);cardPanel.add( Card 2 , component2);...layout.show(cardPanel, "Card 1");layout.first(cardPanel);y ( );layout.next(cardPanel);

16

Page 8: Layout ManagersLayout Managers - index-of.co.ukindex-of.co.uk/Java/10-Layout-Managers.pdfJSF 2.0, PrimeFaces, Servlets, JSP, Ajax (with jQuery), GWT, Android development, Java 6 and

CardLayout, Example

17

© 2012 Marty Hall

GridBagLayout

Customized Java EE Training: http://courses.coreservlets.com/Java 6 or 7, JSF 2.0, PrimeFaces, Servlets, JSP, Ajax, Spring, Hibernate, RESTful Web Services, Android. Developed and taught by well-known author and developer. At public venues or onsite at your location.18

Page 9: Layout ManagersLayout Managers - index-of.co.ukindex-of.co.uk/Java/10-Layout-Managers.pdfJSF 2.0, PrimeFaces, Servlets, JSP, Ajax (with jQuery), GWT, Android development, Java 6 and

GridBagLayout

• Behavior– Divides the window into grids, without requiring the

components to be the same size• About three times more flexible than the other standardAbout three times more flexible than the other standard

layout managers, but nine times harder to use

– Each component managed by a grid bag layout is associated with an instance of GridBagConstraintsassociated with an instance of GridBagConstraints

• The GridBagConstraints specifies:– How the component is laid out in the display area

– In which cell the component starts and ends

– How the component stretches when extra room is available

– Alignment in cells

– Java 5 introduced SpringLayout, with similar power but much less complexity

19

GridBagLayout: Basic Steps

• Set the layout, saving a reference to itGridBagLayout layout = new GridBagLayout();GridBagLayout layout = new GridBagLayout();setLayout(layout);

• Allocate a GridBagConstraints objectGridBagConstraints constraints =GridBagConstraints constraints new GridBagConstraints();

• Set up the GridBagConstraints for component 1component 1

constraints.gridx = x1;constraints.gridy = y1;constraints.gridwidth = width1;

t i t idh i ht h i ht1constraints.gridheight = height1;

• Add component 1 to the window, including constraints

( 1 )add(component1, constraints);

• Repeat the last two steps for each remaining component20

Page 10: Layout ManagersLayout Managers - index-of.co.ukindex-of.co.uk/Java/10-Layout-Managers.pdfJSF 2.0, PrimeFaces, Servlets, JSP, Ajax (with jQuery), GWT, Android development, Java 6 and

GridBagConstraints

• Copied when component added to window– Thus, can reuse the GridBagConstraints

GridBagConstraints constraints = new GridBagConstraints();g

constraints.gridx = x1;constraints.gridy = y1;constraints.gridwidth = width1;constraints.gridheight = height1;add(component1, constraints);constraints.gridx = x1;constraints.gridy = y1;add(component2, constraints);

21

GridBagConstraints Fields

• gridx, gridy– Specifies the top-left corner of the component– Upper left of grid is located at

(gridx gridy)=(0 0)(gridx, gridy)=(0,0)– Set to GridBagConstraints.RELATIVE to

auto-increment row/columnGridBagConstraints constraints =

new GridBagConstraints();constraints.gridx =GridBagConstraints.RELATIVE;

container.add(new Button("one"),constraints);

container.add(new Button("two"),constraints);

22

Page 11: Layout ManagersLayout Managers - index-of.co.ukindex-of.co.uk/Java/10-Layout-Managers.pdfJSF 2.0, PrimeFaces, Servlets, JSP, Ajax (with jQuery), GWT, Android development, Java 6 and

GridBagConstraints Fields(Continued)(Continued)• gridwidth, gridheight

– Specifies the number of columns and rows the Component occupies

constraints gridwidth = 3;constraints.gridwidth 3;– GridBagConstraints.REMAINDER lets the

component take up the remainder of the row/column• weightx, weighty

– Specifies how much the cell will stretch in the x or y direction if space is left overdirection if space is left over

constraints.weightx = 3.0;– Constraint affects the cell, not the component (use fill)– Use a value of 0.0 for no expansion in a direction– Values are relative, not absolute

23

GridBagConstraints Fields (Continued)(Continued)• fill

S ifi h d l h i ll h h– Specifies what to do to an element that is smaller than the cell sizeconstraints.fill = GridBagConstraints.VERTICAL;

– The size of row/column is determined by the widest/tallest element in it

– Can be NONE, HORIZONTAL, VERTICAL, or BOTH• anchor

– If the fill is set to GridBagConstraints.NONE, then the anchor field determines where the component isthe anchor field determines where the component is placedconstraints.anchor = GridBagConstraints.NORTHEAST;

C b NORTH EAST SOUTH WEST NORTHEAST– Can be NORTH, EAST, SOUTH, WEST, NORTHEAST, NORTHWEST, SOUTHEAST, or SOUTHWEST

24

Page 12: Layout ManagersLayout Managers - index-of.co.ukindex-of.co.uk/Java/10-Layout-Managers.pdfJSF 2.0, PrimeFaces, Servlets, JSP, Ajax (with jQuery), GWT, Android development, Java 6 and

GridBagLayout: Example

25

GridBagLayout: Example

public GridBagTest() {setLayout(new GridBagLayout());y ( g y ());textArea = new JTextArea(12, 40); // 12 rows, 40 colsbSaveAs = new JButton("Save As");fileField = new JTextField("C:\\Document.txt");bOk = new JButton("OK");bOk = new JButton("OK");bExit = new JButton("Exit");GridBagConstraints c = new GridBagConstraints();// Text Area.c.gridx = 0;c.gridy = 0;c.gridwidth = GridBagConstraints.REMAINDER;c gridheight = 1;c.gridheight = 1;c.weightx = 1.0;c.weighty = 1.0;c.fill = GridBagConstraints.BOTH;c.insets = new Insets(2,2,2,2); //t,l,b,radd(textArea, c);...

26

Page 13: Layout ManagersLayout Managers - index-of.co.ukindex-of.co.uk/Java/10-Layout-Managers.pdfJSF 2.0, PrimeFaces, Servlets, JSP, Ajax (with jQuery), GWT, Android development, Java 6 and

GridBagLayout: Example (Continued)(Continued)

// Save As Button.c.gridx = 0;g ;c.gridy = 1;c.gridwidth = 1;c.gridheight = 1;c weightx = 0 0;c.weightx = 0.0;c.weighty = 0.0;c.fill = GridBagConstraints.VERTICAL;add(bSaveAs,c);

// Filename Input (Textfield).c.gridx = 1;c gridwidth = GridBagConstraints REMAINDER;c.gridwidth = GridBagConstraints.REMAINDER;c.gridheight = 1;c.weightx = 1.0;c.weighty = 0.0;c.fill = GridBagConstraints.BOTH;add(fileField,c);...

27

GridBagLayout: Example (Continued)(Continued)

// Exit Button.c.gridx = 3;g ;c.gridwidth = 1;c.gridheight = 1;c.weightx = 0.0;c weighty = 0 0;c.weighty = 0.0;c.fill = GridBagConstraints.NONE;add(bExit,c);

// Filler so Column 1 has nonzero width.Component filler = Box.createRigidArea(new Dimension(1,1));

c gridx = 1;c.gridx = 1;c.weightx = 1.0;add(filler,c);

...}

28

Page 14: Layout ManagersLayout Managers - index-of.co.ukindex-of.co.uk/Java/10-Layout-Managers.pdfJSF 2.0, PrimeFaces, Servlets, JSP, Ajax (with jQuery), GWT, Android development, Java 6 and

GridBagLayout: Result

Without Box filler at (2 1)With Box filler at (2 1)

29

Without Box filler at (2,1)With Box filler at (2,1)

© 2012 Marty Hall

Strategies for UsingStrategies for Using Layout Managersy g

Customized Java EE Training: http://courses.coreservlets.com/Java 6 or 7, JSF 2.0, PrimeFaces, Servlets, JSP, Ajax, Spring, Hibernate, RESTful Web Services, Android. Developed and taught by well-known author and developer. At public venues or onsite at your location.30

Page 15: Layout ManagersLayout Managers - index-of.co.ukindex-of.co.uk/Java/10-Layout-Managers.pdfJSF 2.0, PrimeFaces, Servlets, JSP, Ajax (with jQuery), GWT, Android development, Java 6 and

Disabling the Layout Manager

• Behavior– If the layout is set to null, then components must be sized and positioned by hand

• Positioning components• component.setSize(width, height)• component.setLocation(left, top)

– or• component setBounds(left top• component.setBounds(left, top,

width, height)

31

No Layout Manager: Example

setLayout(null);B tt b1 B tt ("B tt 1")Button b1 = new Button("Button 1");Button b2 = new Button("Button 2");...b1.setBounds(0, 0, 150, 50);b2.setBounds(150, 0, 75, 50);...add(b1);add(b2);...

32

Page 16: Layout ManagersLayout Managers - index-of.co.ukindex-of.co.uk/Java/10-Layout-Managers.pdfJSF 2.0, PrimeFaces, Servlets, JSP, Ajax (with jQuery), GWT, Android development, Java 6 and

Using Layout Managers EffectivelyEffectively

• Use nested containers– Rather than struggling to fit your design in a single

layout, try dividing the design into sections– Let each section be a panel with its own layout manager– Let each section be a panel with its own layout manager

• Turn off the layout manager for somecontainers

• Adjust the empty space around components– Change the space allocated by the layout manager– Override insets in the Container– Use a Canvas or a Box as an invisible spacer

33

Nested Containers: Example

34

Page 17: Layout ManagersLayout Managers - index-of.co.ukindex-of.co.uk/Java/10-Layout-Managers.pdfJSF 2.0, PrimeFaces, Servlets, JSP, Ajax (with jQuery), GWT, Android development, Java 6 and

Nested Containers: Example

public NestedLayout() {

setLayout(new BorderLayout(2,2));

textArea = new JTextArea(12,40); // 12 rows, 40 cols( , ) ,bSaveAs = new JButton("Save As");fileField = new JTextField("C:\\Document.txt");bOk = new JButton("OK");bExit = new JButton("Exit");

add(textArea,BorderLayout.CENTER);

// Set up buttons and textfield in bottom panel.JPanel bottomPanel = new JPanel();bottomPanel setLayout(new GridLayout(2 1));bottomPanel.setLayout(new GridLayout(2,1));

35

Nested Containers, Example

JPanel subPanel1 = new JPanel();JPanel subPanel2 = new JPanel();JPanel subPanel2 new JPanel();subPanel1.setLayout(new BorderLayout());subPanel2.setLayout

(new FlowLayout(FlowLayout.RIGHT,2,2));( y ( y , , ))

subPanel1.add(bSaveAs,BorderLayout.WEST);subPanel1.add(fileField,BorderLayout.CENTER);subPanel2.add(bOk);subPanel2.add(bExit);

b tt P l dd( bP l1)bottomPanel.add(subPanel1);bottomPanel.add(subPanel2);

add(bottomPanel BorderLayout SOUTH);add(bottomPanel,BorderLayout.SOUTH);}

36

Page 18: Layout ManagersLayout Managers - index-of.co.ukindex-of.co.uk/Java/10-Layout-Managers.pdfJSF 2.0, PrimeFaces, Servlets, JSP, Ajax (with jQuery), GWT, Android development, Java 6 and

Nested Containers: Result

37

Turning Off Layout Manager for Some Containers: ExampleSome Containers: Example

• Suppose that you wanted to arrange a column of buttons (on the left) that take exactly 40% of the widthbuttons (on the left) that take exactly 40% of the width of the containersetLayout(null);int width1 = getSize() width*4/10;int width1 = getSize().width*4/10;,int height = getSize().height;Panel buttonPanel = new Panel();buttonPanel.setBounds(0, 0, width1, height);buttonPanel.setLayout(new GridLayout(6, 1));buttonPanel.add(new Label("Buttons", Label.CENTER));buttonPanel.add(new Button("Button One"));...buttonPanel.add(new Button("Button Five"));add(buttonPanel);Panel everythingElse = new Panel();a e e e yt g se e a e ();int width2 = getSize().width - width1,everythingElse.setBounds(width1+1, 0, width2, height);

38

Page 19: Layout ManagersLayout Managers - index-of.co.ukindex-of.co.uk/Java/10-Layout-Managers.pdfJSF 2.0, PrimeFaces, Servlets, JSP, Ajax (with jQuery), GWT, Android development, Java 6 and

Turning Off Layout Manager for Some Containers: ResultSome Containers: Result

39

Adjusting Space Around ComponentsComponents

• Change the space allocated by the layout manager– Most LayoutManagers accept a horizontal spacing

(hGap) and vertical spacing (vGap) argument(hGap) and vertical spacing (vGap) argument – For GridBagLayout, change the insets

• Use a Canvas or a Box as an invisible spacer– For AWT layouts, use a Canvas that does not draw or

h dl t “ t ” t fhandle mouse events as an “empty” component for spacing.

– For Swing layouts, add a Box as an invisible spacer to g y , pimprove positioning of components

40

Page 20: Layout ManagersLayout Managers - index-of.co.ukindex-of.co.uk/Java/10-Layout-Managers.pdfJSF 2.0, PrimeFaces, Servlets, JSP, Ajax (with jQuery), GWT, Android development, Java 6 and

© 2012 Marty Hall

Wrap-Up

Customized Java EE Training: http://courses.coreservlets.com/Java 6 or 7, JSF 2.0, PrimeFaces, Servlets, JSP, Ajax, Spring, Hibernate, RESTful Web Services, Android. Developed and taught by well-known author and developer. At public venues or onsite at your location.41

Drag-and-Drop Swing GUI BuildersSwing GUI Builders

• FreeM ti (“N tB GUI B ild ”) b ilt i t N tB– Matisse (“NetBeans GUI Builder”) built into NetBeans

• Also available in MyEclipse. Not in regular Eclipse.

– WindowBuilder Pro• Originally a commercial product then bought and released for free by• Originally a commercial product, then bought and released for free by

Google. For Eclipse.– http://code.google.com/javadevtools/download-wbpro.html

• Commercial– JFormDesigner

• jformdesigner.com

– Jvider• jvider.com

– SpeedJG• wsoftware.de

– Jigloo• http://www.cloudgarden.com

/jigloo/42

Page 21: Layout ManagersLayout Managers - index-of.co.ukindex-of.co.uk/Java/10-Layout-Managers.pdfJSF 2.0, PrimeFaces, Servlets, JSP, Ajax (with jQuery), GWT, Android development, Java 6 and

Other Layout Managers

• BoxLayout– Lets you put components in horizontal or vertical rows

and control the sizes and gaps. Simple, but useful.

• GroupLayout• GroupLayout– Groups components into hierarchies, then positions each

group. Mostly designed for use by GUI builders.g p y g y

• SpringLayout– Alternative to GridBagLayout that lets you give complex

i f h Al l i lconstraints for each component. Almost exclusively designed for use by GUI builders.

43

Summary

• Default layout managersA l d P l Fl L– Applet and Panel: FlowLayout

– Frame and Dialog: BorderLayout• Preferred sizesPreferred sizes

– FlowLayout: honors all– BorderLayout:

North/South honors preferred height• North/South honors preferred height • East/West honors preferred width

– GridLayout: ignores preferred sizesG idB L t• GridBagLayout – The most complicated but most flexible manager

• Design strategy• Design strategy– Use nested containers, each with relatively simple layout

44

Page 22: Layout ManagersLayout Managers - index-of.co.ukindex-of.co.uk/Java/10-Layout-Managers.pdfJSF 2.0, PrimeFaces, Servlets, JSP, Ajax (with jQuery), GWT, Android development, Java 6 and

© 2012 Marty Hall

Questions?Questions?

Customized Java EE Training: http://courses.coreservlets.com/Java 6 or 7, JSF 2.0, PrimeFaces, Servlets, JSP, Ajax, Spring, Hibernate, RESTful Web Services, Android. Developed and taught by well-known author and developer. At public venues or onsite at your location.45