Manage the Margins

LayoutManagers control the locations of AWT Components, such as Labels, Buttons and TextFields within Containers, such as Frames, Applets and Panels. Some of the five LayoutManagers included with Java 1.1 have constructors that encourage the specification of gaps between the Components. In some cases these horizontal and vertical gaps are also used to provide space between the Components and the edges of the Container. But the SDK documentation is hazy at best on this subject, and for one LayoutManager it is misleading. The following summary may save some frustration:

FlowLayout: The horizontal gap is used between Components, and at the left and right edges of the Container. The vertical gap is used between rows of Components if needed, and at the top and bottom edges.

BorderLayout: The gaps are only used between the Components. If you need space around the edges too, you need to define a getInsets method for the Container.

CardLayout: The documentation refers to horizontal and vertical gaps but because only one Component is visible at once, the gaps are really margins between the Component and the edges of the Container. A getInsets method would have the same effect.

GridLayout: The documentation states that the gaps will be used between Components and at the edges of the Container. However they are only used between the Components. If you want space at the edges, extend the Container with a getInsets method.

GridBagLayout: Gaps are provided by the insets variable of the associated GridBagConstraints object. It provides a margin around individual Components, which would apply at the edges of the Container too. But if you want more or less space at the edges, the Container will need a getInsets method.

Share the Post:
Share on facebook
Share on twitter
Share on linkedin


Recent Articles: