CATEGORII DOCUMENTE |
Asp | Autocad | C | Dot net | Excel | Fox pro | Html | Java |
Linux | Mathcad | Photoshop | Php | Sql | Visual studio | Windows | Xml |
Building a graphical user interface for an application is an interesting and challenging task. Every graphical user interface requires components that perform specialized tasks, such as buttons that invoke actions and data entry areas for users to type in information. Components also need to be logically grouped. Java's Abstract Windowing Toolkit (AWT) provides a rich set of ready-to-use user interface components that application developers can incorporate into their programs.
This chapter describes the application programming interface of some of the ready-made GUI components that the Java toolkit provides. It also introduces the concepts involved in laying out components on the screen using Java's layout managers. It explains how to use the Java layout managers and how to implement custom layout managers. Throughout, detailed explanations of the methods are supplemented with examples that will assist you in building an attractive GUI. The project, at the end of this chapter, lays out some of the components described in this chapter using layout managers and demonstrates the capabilities of each of Java's layout managers.
As a developer of GUIs, you will use Java's GUI components a lot. Some of them, such as Button, Canvas, Frame, Panel, Label, and Scrollbar are common user-interface components that nearly all GUI toolkits provide. Some classes, such as Dimension and Insets, are helper classes that embody abstractions that help make programming in a graphical environment easy. Figure 4-1 shows several components of a GUI.
Figure 4-1 Components of a graphical user interface
All the GUI components in the Java AWT are implemented with subclasses of the Component class. As you may recall from Chapter 3, the Container is a special type of component that can contain other components. How does one arrange the Components within a container? This is where the layout manager plays a role. A layout manager is a Java object that knows how to position and size or resize components within a container that appears on the screen. Java provides a number of layout managers, each of which lays out components differently. Every container has a default layout manager that you can easily replace with another one. You can also specify absolute positions (for components) instead of using a layout manager.
Layout managers must implement the methods of the LayoutManager interface. Since all layout managers implement the same interface, if you know how to use one layout manager, then switching to a different one is easy. Applications do not invoke the methods of the LayoutManager interface directly. The Container methods add, remove, removeAll, layout, preferredSize, and minimumSize result in calls to the corresponding methods of the layout manager associated with that Container object. The layout managers that Java's AWT provides are FlowLayout, GridLayout, BorderLayout, CardLayout, and GridBagLayout. Figure 4-2 shows two examples of what you can do with these layout managers.
Figure 4-2 Examples of BorderLayout and GridBagLayout
Table 4-1 summarizes Java's Windowing Component classes. Java's layout interfaces and classes are summarized in Table 4-2.
|
||||||||||||||||||||||
|
||||||||||||||||||||
Button
Purpose
This class represents an on-screen button.
Syntax
public class Button extends Component
Description
This class implements a button that can be pressed to invoke a user-defined action or sequence of actions. Methods of the Component class can be used with Button objects. Refer to the Event class, described in Chapter 3, to find out more about handling button related events. Figure 4-3 shows the inheritance hierarchy for the Button class.
PackageName
java.awt
Imports
import java.awt.Button;
Constructors
public Button()
public Button(String label)
Parameters
label
The text string to display on the button
Example
The following sample code shows how to construct Button objects.
import java.awt.*;
Figure 4-3 Inheritance hierarchy for the Button class
addNotify()
ClassName
Button
Purpose
This method creates a peer object for this Button object.
Syntax
public synchronized void addNotify()
Parameters
None.
Description
This method creates a peer for this Button. The peer allows the programmer to change the look of the button without affecting its functionality. The addNotify method is the earliest stage, in the creation of a component, that platform specific resources (such as color, fonts, and fontmetrics) may be determined. Classes that override this method must first call super.addNotify() before doing any other processing in this method.
Imports
import java.awt.Button;
Returns
None.
See Also
The ButtonPeer interface
Example
Refer to the example listed in the addNotify method of the Canvas class in this chapter and also to the section on ButtonPeer interfaces in Chapter 9.
getLabel()
ClassName
Button
Purpose
To retrieve the text string displayed on the button.
Syntax
public String getLabel()
Parameters
None.
Description
This method retrieves the text label displayed on the button.
Imports
import java.awt.Button;
Returns
The return type of this method is String. This return value contains the text string displayed on the Button object.
See Also
The setLabel method
Example
The following example demonstrates the use of this method in an application.
import java.awt.*;paramString()
ClassName
Button
Purpose
To represent the parameters of this Button as a String object.
Syntax
protected String paramString()
Parameters
None.
Description
This method represents the various parameters associated with the Button as a String and returns the string. Classes that extend the Button class can override this method to add additional parameter information to the String representation. This protected method cannot be invoked from an application, but is invoked by the toString method of the Component class.
Imports
import java.awt.Button;
Returns
The return type of this method is String. This return value contains the text label of the Button object, in addition to the parameter values of the base class, Component.
See Also
The toString and paramString methods of the Component class.
Example
The following example demonstrates the use of this method in an application.
import java.awt.*;setLabel(String)
ClassName
Button
Purpose
To set the label on the button to the specified string.
Syntax
public void setLabel(String label)
Parameters
label
The text string for the Button label.
Description
This method changes the text label, that is displayed on button, to the specified string.
Imports
import java.awt.Button;
Returns
None.
See Also
The getLabel method
Example
The following code illustrates the use of this method in setting the label of a button.
import java.awt.*;Canvas
Purpose
A generic canvas type on which graphics operations such as drawing can be performed.
Syntax
public class Canvas extends Component
Description
This class implements a generic canvas type, on which drawing operations can be performed using the specified graphics device. Classes that extend the Canvas class must override the minimumSize method, as the default size of a Canvas is zero. Figure 4-4 shows the inheritance hierarchy for the Canvas class.
PackageName
java.awt
Imports
import java.awt.Canvas;
Constructors
public Canvas()
Parameters
None.
Example
The following sample code shows how to construct Canvas objects.
import java.awt.*;
Figure 4-4 Inheritance hierarchy for the Canvas class
addNotify()
ClassName
Canvas
Purpose
To create a peer object for this Canvas object.
Syntax
public synchronized void addNotify()
Parameters
None.
Description
This method creates a peer for this Canvas object that enables you to change the appearance of the canvas without changing the functionality of the Canvas object. The addNotify method is the earliest stage in the creation of a component where platform specific resources (such as color, fonts, and fontmetrics) may be determined. Classes that override this method must first call super.addNotify() before doing any other processing in this method.
Imports
import java.awt.Canvas;
Returns
None.
See Also
The interface CanvasPeer
Example
The following code illustrates the use of this method. The ColorCanvas class initializes the font type and the text color in the addNotify method and uses these values while painting the Canvas.
import java.awt.*;paint(Graphics)
ClassName
Canvas
Purpose
To paint the Canvas object.
Syntax
public void paint(Graphics g)
Parameters
g
The graphics context object.
Description
This method is invoked to paint the canvas object. Classes that extend the Canvas class can customize the appearance of the canvas by overriding this method.
Imports
import java.awt.Canvas;
Returns
None.
See Also
The Component and Graphics classes
Example
This sample source code implements a custom canvas type that has horizontal lines, just like a ruled sheet of paper.
import java.awt.*;Dimension
Purpose
A class that represents a height and a width measurement.
Syntax
public class Dimension extends Object
Description
The Dimension class encapsulates the height and width measurement of a component. The width and height variables of a Dimension object are public and, hence, can be accessed directly. Figure 4-5 shows the inheritance hierarchy for the Dimension class.
PackageName
java.awt
Imports
import import java.awt.Dimension;
Constructors
public Dimension()
public Dimension(Dimension d)
public Dimension(int width, int height)
Parameters
d
The source Dimension object from which to copy.
width
The width measurement of the dimension.
height
The height measurement of the dimension.
Example
This code illustrates the different ways of constructing Dimension objects.
import java.awt.Dimension;
Figure 4-5 Inheritance hierarchy for the Dimension class
toString()
ClassName
Dimension
Purpose
To represent the parameter values of the Dimension object as a String.
Syntax
public String toString()
Parameters
None.
Description
This method returns, as a string, the values of the width and height measurements of this Dimension object prefixed by its classname (java.awt.Dimension).
Imports
import java.awt.Dimension;
Returns
None.
See Also
The toString method of the Object class
Example
import java.awt.Dimension;When this example is compiled and executed, the following string is printed on the screen.
d.toString() = java.awt.Dimension[width=,height=200]Frame
Purpose
A class that represents a top-level window that can function as a container for other components.
Syntax
public class Frame extends Window implements MenuContainer
Description
This class implements a window with a title bar and border that can contain a menu bar, as well as other AWT Components. Frames and Panels are commonly used as the top-level window GUIs. Most of the functionality for this class is implemented in the Window, Container, and Component classes. Refer to those classes in Chapter 2 and Chapter 3 to get a complete picture of what you can do with Frame objects. The default layout manager for Frame window objects is BorderLayout. Figure 4-6 shows the inheritance hierarchy for the Frame class.
PackageName
java.awt
Imports
import java.awt.Frame;
Constructors
public Frame()
public Frame(String title)
Parameters
title
The string to display in the title bar of the Frame window.
Example
This example demonstrates Frame construction.
import java.awt.*;
Figure 4-6 Inheritance hierarchy for the Frame class
addNotify()
ClassName
Frame
Purpose
Creates a peer object for this Frame object.
Syntax
public synchronized void addNotify()
Parameters
None.
Description
This method creates a peer for this Frame object that enables you to change the appearance of the frame window without changing its functionality. The addNotify method is the earliest stage, in the creation of a component, that platform specific resources (such as color, fonts, and fontmetrics) may be determined. Classes that override this method must first call super.addNotify() before doing any other processing in this method.
Imports
import java.awt.Frame;
Returns
None.
See Also
The FramePeer interface
Example
Refer to the example listed in the addNotify method of the Canvas class in this chapter and also to the section on FramePeer interfaces in Chapter 9.
dispose()
ClassName
Frame
Purpose
To release all the resources that are being used by this Frame object.
Syntax
public synchronized void dispose()
Parameters
None.
Description
This method is called to release the resources of a Frame object that is no longer required.
Imports
import java.awt.Frame;
Returns
None.
See Also
The Window class
Example
Refer to the corresponding method in the Window class description in Chapter 3.
getCursorType()
ClassName
Frame
Purpose
To get the integer constant that represents the cursor type associated with this Frame object.
Syntax
public int getCursorType()
Parameters
None.
Description
This method gets the integer type, associated with the cursor for this Frame. A list of cursor types is given in the description of the setCursor method for this class.
Imports
import java.awt.Frame;
Returns
The cursor type, associated with this Frame window, is returned as an integer value and will be one of the values detailed in the list of cursor types.
Example
This example prints the integer value of the default cursor image.
import java.awt.*;getIconImage()
ClassName
Frame
Purpose
To get the image of the icon of this Frame object.
Syntax
public Image getIconImage()
Parameters
None.
Description
This method gets the image that is displayed when the Frame is iconized.
Imports
import java.awt.Frame;
Returns
This method returns an Image object that represents the icon image used for this Frame object. Refer to the section on Image objects in Chapter 8 for more information.
See Also
The Image class
Example
The following example demonstrates the use of this method in an application.
import java.awt.*;getMenuBar()
ClassName
Frame
Purpose
To get the menu bar object associated with this Frame object.
Syntax
public MenuBar getMenuBar()
Parameters
None.
Description
This method gets the MenuBar object that represents the menu bar associated with this Frame.
Imports
import java.awt.Frame;
Returns
The menu bar information, associated with this Frame window, is returned as a MenuBar object. Refer to the section on MenuBar objects in Chapter 6 for more information.
See Also
The MenuBar class
Example
The portion of code given here uses this method.
import java.awt.*;getTitle()
ClassName
Frame
Purpose
To get the text string on the title bar of the frame.
Syntax
public String getTitle()
Parameters
None.
Description
This method gets the text label displayed in the title bar of the Frame window.
Imports
import java.awt.Frame;
Returns
This method returns a String object that contains the title of the Frame window as a text string.
Example
This example prints the title of the Frame window on the standard output device.
import java.awt.*;isResizable()
ClassName
Frame
Purpose
Indicates whether this Frame window object is resizable or not.
Syntax
public boolean isResizable()
Parameters
None.
Description
This method is used to test whether or not the dimensions of this Frame object can be changed.
Imports
import java.awt.Frame;
Returns
If the Frame object is resizable, then the return value is true; otherwise this method returns false.
Example
The following code illustrates the use of this function in determining whether a Frame object is resizable or not.
import java.awt.*;paramString()
ClassName
Frame
Purpose
To return the parameter values associated with this Frame object
Syntax
protected String paramString()
Parameters
None.
Description
The parameter values for this Frame object are returned as a String. This protected method cannot be invoked directly. The toString method of the Component superclass invokes this method.
Imports
import java.awt.Frame;
Returns
A String containing the parameter values for this Frame object.
See Also
The toString and paramString methods of the Component class
Example
The following example prints the parameter information for a Frame window object.
import java.awt.*;When this example is compiled and executed, the following string is printed on the screen.
f.toString() = java.awt.Frame[0,0,0x0,invalid,hidden,remove(MenuComponent)
ClassName
Frame
Purpose
To remove the specified menu bar object from the Frame window.
Syntax
public synchronized void remove(MenuComponent m)
Parameters
m
The MenuComponent object to be removed from this Frame.
Description
This method removes the specified menu bar from this Frame window.
Imports
import java.awt.Frame;
Returns
None.
See Also
The MenuComponent and MenuBar classes
Example
This function removes the menu bar from the specified Frame window.
import java.awt.*;setCursor(int)
ClassName
Frame
Purpose
To set the cursor to display when the pointer is within this Frame window.
Syntax
public void setCursor(int cursorType)
Parameters
cursorType
An integer constant that indicates the type of cursor to display within this Frame window. The cursor types defined in this class are
CROSSHAIR_CURSOR |
Cursor image is a crosshair |
DEFAULT_CURSOR |
Default cursor image(arrow cursor) |
E_RESIZE_CURSOR |
Cursor image when the window is being resized to the right |
HAND_CURSOR |
The image for the cursor is a small hand |
MOVE_CURSOR |
The cursor image when the window is being moved |
N_RESIZE_CURSOR |
Cursor image when the window is being resized upwards |
NE_RESIZE_CURSOR |
Cursor image when the window is being resized by dragging its north-east corner |
NW_RESIZE_CURSOR |
Cursor image when the window is being resized by dragging its north-west corner |
S_RESIZE_CURSOR |
Cursor image when the window is being resized downwards |
SE_RESIZE_CURSOR |
Cursor image when the window is being resized by dragging its south-east corner |
SW_RESIZE_CURSOR |
Cursor image when the window is being resized by dragging its south-west corner |
TEXT_CURSOR |
Cursor image when the cursor is in an editable text window |
W_RESIZE_CURSOR |
Cursor image when the window is being resized to the left |
WAIT_CURSOR |
Hourglass cursor image |
Description
This method specifies the cursor image to display when the pointer is within this Frame window. The cursor can be any one of the types listed in the Parameters section of this method.
Imports
import java.awt.Frame;
Returns
None.
Example
This code causes the cursor image to change to an image of a hand when the mouse pointer is inside the Frame window,.
import java.awt.*;setIconImage(Image)
ClassName
Frame
Purpose
To set the image of the icon of this Frame object.
Syntax
public void setIconImage(Image image)
Parameters
image
The image to be used for the icon.
Description
This method specifies the image to use when the Frame is iconized. Some platforms do not support icons for windows.
Imports
import java.awt.Frame;
Returns
None.
See Also
The Image class
Example
The following example demonstrates the use of this method in an application.
import java.awt.*;setResizable(boolean)
ClassName
Frame
Purpose
To enable/disable the resizable feature on this Frame object.
Syntax
public void setResizable(boolean resizable)
Parameters
resizable
A boolean value that represents whether or not the Frame window is resizable. If set to true, the Frame object is resizable; if set to false, the Frame window is not resizable.
Description
This method is used to set whether the Frame window is resizable or not.
Imports
import java.awt.Frame;
Returns
None.
Example
The following function toggles the resizable flag of the specified Frame object.
import java.awt.*;setTitle(String)
ClassName
Frame
Purpose
Sets the text string on the title bar of the frame.
Syntax
public void setTitle(String title)
Parameters
title
The text string to display in the title bar of this Frame.
Description
This method sets the text label displayed in the title bar of the Frame window to the specified string.
Imports
import java.awt.Frame;
Returns
None.
Example
This method is used in the following example to set the title of a Frame window.
import java.awt.*;Insets
Purpose
Specifies an inset from within a rectangular area.
Syntax
public class Inset extends Object implements Cloneable
Description
This class represents the top, left, bottom, and right insets. This class is used to calculate the actual area that may be used inside a rectangular region, after subtracting the inset on each side of the region. This class is used by layout managers to lay out components. Figure 4-7 shows the inheritance hierarchy for the Insets class.
PackageName
java.awt
Imports
import java.awt.Insets;
Constructors
public Insets(int top, int left, int bottom, int right)
Parameters
top
The distance set in from the top of the Container.
left
The distance set in from the left of the Container.
bottom
The distance set in from the bottom of the Container.
right
The distance set in from the right of the Container.
Example
This code shows how to construct an Insets object.
import java.awt.Insets;
Figure 4-7 Inheritance hierarchy for the Insets class
clone()
ClassName
Insets
Purpose
To create a duplicate of this Insets object
Syntax
public Object clone()
Parameters
None.
Description
Creates a new instance of an Insets object and makes an exact duplicate of this Insets object.
Imports
import java.awt.Insets;
Returns
The return value is an Object that is a clone of this Insets object. You must cast this return value as an Insets object in order to use it as one.
See Also
The clone method of the Object class; the Cloneable interface
Example
import java.awt.Insets;toString()
ClassName
Insets
Purpose
To store the Insets object's parameter values in a String.
Syntax
public String toString()
Parameters
None.
Description
The values of the top, left, bottom, and right insets are returned as a String object.
Imports
import java.awt.Insets;
Returns
The return value is a String that contains the values of the parameters for the Insets object. The values are prefixed by a short textual description of the property they denote.
See Also
The Object class
Example
This method is implemented in the following example.
import java.awt.Insets;When this example is compiled and executed, the following string is printed on the screen
i.toString() = java.awt.Insets[top=5,left=10,bottom=5,right=10]Label
Purpose
A class that represents a single line text label.
Syntax
public class Label extends Component
Description
This class implements a graphical object that displays a single line of non-editable text. The alignment of the text can be specified. By default, label text is centered within the label. The methods of the Component class can be applied to this class. Figure 4-8 shows the inheritance hierarchy for the Label class.
PackageName
java.awt
Imports
import java.awt.Label;
Constructors
public Label()
public Label(String label)
public Label(String label, int alignment)
Parameters
label
The text string to display in the label.
alignment
The alignment mode for the text string's position in the label.
Example
The following example demonstrates the construction of Label objects.
import java.awt.*;
Figure 4-8 Inheritance hierarchy for the Label class
addNotify()
ClassName
Label
Purpose
To create a peer object for this Label object.
Syntax
public synchronized void addNotify()
Parameters
None.
Description
This method creates a peer for this Label object, which you can use to change the appearance of the label without changing its functionality. The addNotify method is the earliest stage in the creation of a component where platform specific resources (such as color, fonts, and fontmetrics) may be determined. Classes that override this method must first call super.addNotify() before doing any other processing in this method.
Imports
import java.awt.Label;
Returns
None.
See Also
The LabelPeer interface; the Component class
Example
Refer to the example listed in the addNotify method of the Canvas class in this chapter, and also to the section on LabelPeer interfaces in Chapter 9.
getAlignment()
ClassName
Label
Purpose
To get the alignment mode of the text string displayed on the label.
Syntax
public int getAlignment()
Parameters
None.
Description
This method gets the current alignment of the text displayed on the label. The mode can be one of Label.RIGHT, Label.CENTER, or Label.LEFT.
Imports
import java.awt.Label;
Returns
This method returns an integer that specifies the alignment of the label.
Example
The following example uses this method to determine a label's alignment.
import java.awt.*;getText()
ClassName
Label
Purpose
To get the text string of this Label object.
Syntax
public String getText()
Parameters
None.
Description
This method gets the text string displayed on the label.
Imports
import java.awt.Label;
Returns
This method returns a String object that contains the text string displayed on the Label.
See Also
The setText method
Example
The following example demonstrates the use of this method in an application.
import java.awt.*;paramString()
ClassName
Label
Purpose
To return the parameter string associated with this Label object.
Syntax
protected String paramString()
Parameters
None.
Description
This method returns the parameter values associated with the label (such as x, y coordinates, label text, and so on) as a String object. This protected method cannot be invoked from an application, but is invoked by the toString method of the Component class.
Imports
import java.awt.Label;
Returns
The return value is a String that contains the values of the parameters for the Label object. The values are prefixed by a short textual description of the property they denote.
See Also
The toString and paramString methods of the Component class
Example
This example prints the parameter values of a label.
import java.awt.*;setAlignment(int)
ClassName
Label
Purpose
To set the alignment of the text string on the label.
Syntax
public void setAlignment(int alignment)
Parameters
alignment
The alignment mode to use for positoining the text on the label.
Description
This method sets the alignment mode to use for positioning the text on the label. If an invalid value is passed as an alignment mode, then an IllegalArgumentException is thrown.
Imports
import java.awt.Label;
Returns
None.
See Also
The getAlignment method of the IllegalArgumentException class
Example
In the following example this method is used to set the alignment mode of a label.
import java.awt.*;setText(String)
ClassName
Label
Purpose
To change the text string displayed on the label.
Syntax
public void setText(String label)
Parameters
label
The text for the label.
Description
This method sets the text string displayed on the label.
Imports
import java.awt.Label;
Returns
None.
See Also
The getText method
Example
This method is used in the following sample code.
import java.awt.*;Panel
Purpose
A class that implements a generic container in which other components can be laid out.
Syntax
public class Panel extends Container
Description
Panels are commonly used as windows in which to arrange other components (such as Buttons, Labels, etc.). The FlowLayout layout manager is the default layout manager used for all Panels. Panels do not have a title bar and, unlike Frame windows, they cannot be used as top-level windows. The methods of the Container and Component classes can be invoked on Panels. Refer to the examples in Chapter 2 and Chapter 3 for more information. Figure 4-9 shows the inheritance hierarchy for the Panel class.
PackageName
java.awt
Imports
import java.awt.Panel;
Constructors
public Panel()
Parameters
None.
Example
In this example, buttons are added to a Panel window within a Frame window.
import java.awt.*;
Figure 4-9 Inheritance hierarchy for the Panel class
addNotify()
ClassName
Panel
Purpose
To create a peer for this Panel object.
Syntax
public synchronized void addNotify()
Parameters
None.
Description
This method creates a peer for this Panel object that you can use to change the appearance of the panel window without changing its functionality. The addNotify method is the earliest stage in the creation of a component at which platform specific resources (such as color, fonts, and fontmetrics) may be determined. Classes that override this method must first call super.addNotify() before doing any other processing in this method.
Imports
import java.awt.Panel;
Returns
None.
See Also
The PanelPeer interface
Example
Refer to the example listed in the addNotify method of the Canvas class in this chapter and also to the section on PanelPeer interfaces in Chapter 9.
Scrollbar
Purpose
A class that represents a scrollbar.
Syntax
public class Scrollbar extends Component
Description
This class implements a scrollbar object. Applications use scrollbars to scroll the data or image displayed on the screen. The scrollbar thumb position indicates the position of the visible portion of the image or data within a larger image or data buffer. Scrollbars are associated with a viewing area, and by dragging the thumb of the scrollbar, a user can change the image or data displayed in the viewing area. Figure 4-10 shows the inheritance hierarchy for the Scrollbar class.
PackageName
java.awt
Imports
import java.awt.Scrollbar;
Constructors
public Scrollbar()
public Scrollbar(int orientation)
public Scrollbar(int orientation, int value, int visible, int minimum, int
maximum)
Parameters
orientation
The orientation of the scrollbar.
value
The current value of the scrollbar's thumb position.
visible
The size of the visible region of the area that is being scrolled using the scrollbar.
minimum
The minimum value of the scrollbar.
maximum
The maximum value of the scrollbar.
Example
This sample code shows how to construct Scrollbar objects.
import java.awt.*;
Figure 4-10 Inheritance hierarchy for the Scrollbar class
addNotify()
ClassName
ScrollBar
Purpose
Creates a peer object for this Scrollbar object.
Syntax
public synchronized void addNotify()
Parameters
None.
Description
Using this method one can change the appearance of the scrollbar without changing its functionality. The addNotify method is the earliest stage in the creation of a component at which platform specific resources such as color, fonts and fontmetrics may be determined. Classes that override this method must first call super.addNotify() before doing any other processing in this method.
Imports
import java.awt.Scrollbar;
Returns
None.
See Also
The ScrollbarPeer class
Example
Refer to the example listed in the addNotify method of the Canvas class in this chapter and also to the section on ScrollbarPeer interfaces in Chapter 9.
getLineIncrement()
ClassName
Scrollbar
Purpose
To get the step size, set for decrements/increments when the line up/down arrow buttons of the scrollbar are invoked.
Syntax
public int getLineIncrement()
Parameters
None.
Description
This method returns an integer that represents the step size that will increment line.
Imports
import java.awt.Scrollbar;
Returns
This method returns an integer that represents the line increment step size.
Example
The following example demonstrates the use of this method in an application.
import java.awt.*;getMaximum()
ClassName
Scrollbar
Purpose
To determine the value of the maximum position of the scrollbar thumb
Syntax
public int getMaximum()
Parameters
None.
Description
This method gets the value for the maximum position of the thumb for this Scrollbar object.
Imports
import java.awt.Scrollbar;
Returns
This method returns an integer value that represents the maximum position of the Scrollbar object.
Example
The following example demonstrates the use of this method in an application.
import java.awt.*;getMinimum()
ClassName
Scrollbar
Purpose
To determine the minimum position of the scrollbar thumb.
Syntax
public int getMinimum()
Parameters
None.
Description
This method gets the value for the minimum position of the thumb for this Scrollbar object.
Imports
import java.awt.Scrollbar;
Returns
This method returns an integer that represents the minimum position of the Scrollbar object.
Example
The following example demonstrates the use of this method in an application.
import java.awt.*;getPageIncrement()
ClassName
Scrollbar
Purpose
Gets the step size, set for decrements/increments when the page up/down actions of the scrollbar are invoked.
Syntax
public int getPageIncrement()
Parameters
None.
Description
This method returns an integer that represents the page increment step size.
Imports
import java.awt.Scrollbar;
Returns
This method returns an integer that represents the page increment step size.
Example
The following example demonstrates the use of this method in an application.
import java.awt.*;getOrientation()
ClassName
Scrollbar
Purpose
To determine the orientation of the scrollbar.
Syntax
public int getOrientation()
Parameters
None.
Description
This method gets the value for the orientation of this Scrollbar object.
Imports
import java.awt.Scrollbar;
Returns
This method returns an integer that represents the orientation of this ScrollBar object. The value returned is either Scrollbar.HORIZONTAL or Scrollbar.VERTICAL.
Example
The following example demonstrates the use of this method in an application.
import java.awt.*;getValue()
ClassName
Scrollbar
Purpose
Determines the value of the current position of the scrollbar thumb
Syntax
public int getValue()
Parameters
None.
Description
This method gets the value for the current position of the thumb for this Scrollbar object.
Imports
import java.awt.Scrollbar;
Returns
This method returns an integer that represents the current position of the Scrollbar object.
Example
The following example demonstrates the use of this method in an application.
import java.awt.*;getVisible()
ClassName
Scrollbar
Purpose
To determine the size of the visible portion of the scrollbar.
Syntax
public int getVisible()
Parameters
None.
Description
This method gets the value for the visible portion of this Scrollbar object.
Imports
import java.awt.Scrollbar;
Returns
This method returns an integer that represents the visible portion of this Scrollbar object.
Example
The following example demonstrates the use of this method in an application.
import java.awt.*;paramString()
ClassName
Scrollbar
Purpose
To return the parameter string associated with this Scrollbar object
Syntax
protected String paramString()
Parameters
None.
Description
This method returns the parameter values associated with a Scrollbar object. The values are prefixed by short descriptive tags. This protected method cannot be invoked from an application, but is invoked by the toString method of the Component class.
Imports
import java.awt.Scrollbar;
Returns
The return value is a String that contains the values of the parameters for the Scrollbar object. The values are prefixed by a short textual description of the property they denote.
See Also
The toString and paramString methods of the Component class
Example
The following example demonstrates the use of this method in an application.
import java.awt.*;setLineIncrement(int)
ClassName
Scrollbar
Purpose
Sets the step size for decrements/increments when the line up/down arrow buttons of the scrollbar are invoked.
Syntax
public void setLineIncrement(int l)
Parameters
l
The line increment size.
Description
This method specifies the amount that the area is to be scrolled when the user invokes the line up/down arrow buttons of the scrollbar. The position of the scrollbar thumb within the scrollbar is also updated proportional to the value specified in this method.
Imports
import java.awt.Scrollbar;
Returns
None.
Example
The following example demonstrates the use of this method in an application.
import java.awt.*;setPageIncrement(int)
ClassName
Scrollbar
Purpose
Sets the step size for decrements/increments when the page up/down actions of the scrollbar are invoked.
Syntax
public void setPageIncrement(int l)
Parameters
l
The page increment size.
Description
This method specifies the amount that the area is to be scrolled when the user invokes the page up/down actions. The position of the scrollbar thumb within the scrollbar is also updated proportional to the value specified in this method
Imports
import java.awt.Scrollbar;
Returns
None.
Example
The following example demonstrates the use of this method in an application.
import java.awt.*;setValue(int)
ClassName
Scrollbar
Purpose
Sets the value of the current position of this Scrollbar to the specified value.
Syntax
public void setValue(int value)
Parameters
value
The new value for the current position of the Scrollbar. If this value is less than the minimum value of the scrollbar, then it becomes the new minimum value of the scrollbar. Similarly, if this value is more than the maximum value of the scrollbar, then it becomes the new maximum value of the scrollbar.
Description
This method sets the value for the current position of the thumb for this Scrollbar object.
Imports
import java.awt.Scrollbar;
Returns
None.
Example
The following example demonstrates the use of this method in an application.
public class TestScroll extends FramesetValues(int, int, int, int)
ClassName
Scrollbar
Purpose
Sets various parameters associated with this ScrollBar object.
Syntax
public void setValues(int value, int visible, int minimum, int maximum)
Parameters
value
The position of the scrollbar thumb in the current window.
visible
The size of the visible region of the area being scrolled using the scrollbar.
minimum
The minimum value of the scrollbar.
maximum
The maximum value of the scrollbar.
Description
This method provides a convenient way to set the various parameters of this Scrollbar object.
Imports
import java.awt.Scrollbar;
Returns
None.
Example
The following example demonstrates the use of this method in an application.
public class TestScroll extends FrameLayoutManager
Purpose
An interface for classes that need to lay out Components in Containers.
Syntax
public interface LayoutManager extends Object
Description
This interface is used to implement the mechanisms required of classes that know how to lay out Containers. All the layout managers supplied with the Java AWT implement this interface.
PackageName
java.awt
Imports
import java.awt.LayoutManager;
Constructors
None.
Parameters
None.
Example
See the examples for FlowLayout and GridLayout.
addLayoutComponent(String, Component)
Interface
LayoutManager
Purpose
To add the specified component to the layout, associating the component with the specified name.
Syntax
public abstract void addLayoutComponent(String name, Component comp)
Parameters
name
Name of the area where the component should be added.
comp
Component object to be added.
Description
This method should be defined in any class that implements the LayoutManager interface.
Imports
import java.awt.LayoutManager;
Returns
None.
See Also
The Container class
Example
The following example demonstrates the implementation of this method.
import java.awt.*layoutContainer(Container)
Interface
LayoutManager
Purpose
To lay out the specified container.
Syntax
public abstract void layoutContainer(Container parent)
Parameters
parent
The Container object to be laid out.
Description
This method causes the specified container to be laid out. It should be defined in any class that implements the LayoutManager interface.
Imports
import java.awt.LayoutManager;
Returns
None.
See Also
The Container class
Example
The following sample code for a custom layout manager shows the implementation of this function.
import java.awt.*minimumLayoutSize(Container)
Interface
LayoutManager
Purpose
To calculate the minimum size required to lay out the container, taking into account the components in the specified container.
Syntax
public abstract Dimension minimumLayoutSize(Container parent)
Parameters
parent
The Container that holds the components that need to be laid out.
Description
This method should be defined in any class that implements the LayoutManager interface.
Imports
import java.awt.LayoutManager;
Returns
The return type of this method is Dimension. This return value contains the minimum height and width required to layout the container in the specified panel.
See Also
The Container class
Example
Here is an extract from a class that implements the LayoutManager interface.
import java.awt.*preferredLayoutSize(Container)
Interface
LayoutManager
Purpose
To calculate the preferred dimensions required to lay out the container, taking into account the components in the specified container.
Syntax
public abstract Dimension preferredLayoutSize(Container parent)
Parameters
parent
The Container that holds the components that need to be laid out.
Description
This method should be defined in any class that implements the LayoutManager interface.
Imports
import java.awt.LayoutManager;
Returns
The return type of this method is Dimension. This return value contains the preferred height and width required to lay out the container in the specified panel.
See Also
The Container Class
Example
The following example demonstrates the implementation of this method.
import java.awt.*removeLayoutComponent(Component)
Interface
LayoutManager
Purpose
To remove the specified component from the layout.
Syntax
public abstract void removeLayoutComponent(Component comp)
Parameters
comp
The Component to be removed from the layout.
Description
This method should be defined in any class that implements the LayoutManager interface.
Imports
import java.awt.LayoutManager;
Returns
None.
See Also
The Container class
Example
The following sample code demonstrates the implementation of this method in a class that implements a custom layout manager.
import java.awt.*FlowLayout
Purpose
A simple layout manager that lays out components in rows (from left to right).
Syntax
public class FlowLayout extends Object implements LayoutManager
Description
This class implements the LayoutManager interface and is used to lay out components in rows. The components are laid out from left to right and centered within their row. This is the default layout manager for all Panels. Figure 4-11 shows the inheritance hierarchy for the FlowLayout class.
PackageName
java.awt
Imports
import java.awt.flowlayout;
Constructorts
public FlowLayout()
public FlowLayout(int align)
public FlowLayout(int align, int hgap, int vgap)
Parameters
align
The alignment to use for laying out components (can be LEFT,CENTER, or RIGHT).
hgap
The horizontal gap to leave between components.
vgap
The vertical gap to leave between components.
Example
This sample code shows how to construct FlowLayout objects using the different FlowLayout constructors.
/* Default FlowLayout constructor */
Figure 4-11 Inheritance hierarchy for the FlowLayout class
addLayoutComponent(String, Component)
ClassName
FlowLayout
Purpose
To add the specified component to the area in the layout associated with the specified name.
Syntax
public void addLayoutComponent(String name, Component comp)
Parameters
name
Name of the component to be added.
comp
Component object to be added.
Description
The FlowLayout class does not divide the layout area into subareas, and hence does not need to implement any functionality for this method. In order to conform to the LayoutManager interface, this method is an empty stub in the FlowLayout implementation.
Imports
import java.awt.FlowLayout;
Returns
None.
See Also
The Container class; the LayoutManager interface
Example
This code invokes the Container's add method, which in turn invokes this method.
/* Create a Container for the components */layoutContainer(Container)
ClassName
FlowLayout
Purpose
To lay out the specified container in rows, aligning the components within each row.
Syntax
public void layoutContainer(Container parent)
Parameters
parent
Container object to be laid out.
Description
The components are laid out from left to right and aligned within a row. The default alignment is CENTER, but a different alignment (either LEFT or RIGHT) can be specified while constructing the FlowLayout object. The horizontal gap between components in a row and the vertical gap between rows can also be specified in the FlowLayout constructor. Applications do not directly invoke this method. The layout method of the Container class results in a call to this method. The layout method of the Container class is invoked when the Container needs to be displayed on the screen.
Imports
import java.awt.FlowLayout;
Returns
None.
See Also
The LayoutManager interface; the Container class
Example
In the following example, a Frame window is created and displayed.
import java.awt.*;minimumLayoutSize(Container)
ClassName
FlowLayout
Purpose
To calculate the minimum size required to lay out the container, taking into account the components in the specified container.
Syntax
public Dimension minimumLayoutSize(Container parent)
Parameters
parent
Container containing components that need to be laid out.
Description
This method calculates and returns the minimum dimensions required by the FlowLayout manager to lay out the components.
Imports
import java.awt.FlowLayout;
Returns
The return type of this method is Dimension. This return value contains the minimum height and width required to lay out the container in the specified panel.
See Also
The Container class; the LayoutManager interface
Example
The following sample code is an example of this method in an application.
/* Create a Container for the components */preferredLayoutSize(Container)
ClassName
FlowLayout
Purpose
To calculate the preferred dimensions for this layout, taking into account the components in the specified container.
Syntax
public Dimension preferredLayoutSize(Container target)
Parameters
target
Container that needs to be laid out.
Description
This method computes the ideal width and height required by this layout. The values returned have no effect unless the program specifically enforces these dimensions.
Imports
import java.awt.FlowLayout;
Returns
The return type of this method is Dimension. This return value contains the ideal height and width required to lay out the container in the specified panel.
See Also
The Container class; the LayoutManager interface
Example
The following sample code demonstrates the use of this method.
/* Create a Container for the components */removeLayoutComponent(Component)
ClassName
FlowLayout
Purpose
To remove the specified component from the layout.
Syntax
public void removeLayoutComponent(Component comp)
Parameters
comp
Component to be removed from the layout.
Description
This method is a dummy stub in the FlowLayout class, as this layout manager doesn't need to maintain associations between components and areas on the display. Applications do not directly invoke this method. The remove method of the Container class results in a call to this method.
Imports
import java.awt.FlowLayout;
Returns
None.
See Also
The Container class; the LayoutManager interface
Example
The sample code adds buttons to a Panel and then removes one of the buttons.
/* Create a Container for the components */toString()
ClassName
FlowLayout
Purpose
To represent the FlowLayout object's values as a String.
Syntax
public String toString()
Parameters
None.
Description
The values of the horizontal gap variable, the vertical gap variable, and the alignment mode variable for this layout are returned as a String object.
Imports
import java.awt.FlowLayout;
Returns
The return value is a String that contains the values of the properties for the FlowLayout object. The values are prefixed by a short textual description of the property they denote.
See Also
The toString method of the Object class
Example
This method is implemented in the following function.
void printLayoutInfo(LayoutManager layout)GridLayout
Purpose
A layout manager that creates a grid with the specified number of rows and columns and lays out components on the grid.
Syntax
public class GridLayout extends Object implements LayoutManager
Description
This class implements the LayoutManager interface and is used to lay out components in grids. It makes all the components of equal size and lays them out on the grid. Figure 4-12 shows the inheritance hierarchy for the GridLayout class.
PackageName
java.awt
Imports
import java.awt.GridLayout;
Constructors
public GridLayout(int rows, int
cols)
public GridLayout(int rows, int cols, int hgap, int vgap)
Parameters
rows
The number of rows in the grid.
cols
The number of columns in the grid.
hgap
The horizontal gap to leave between components.
vgap
The vertical gap to leave between components.
Example
Here is sample source code that illustrates GridLayout construction.
/* GridLayout constructor to lay out components in a single row
Figure 4-12 Inheritance hierarchy for the GridLayout class
addLayoutComponent(String, Component)
ClassName
GridLayout
Purpose
To add the specified component to the layout, associating the component with the specified name.
Syntax
public void addLayoutComponent(String name, Component comp)
Parameters
name
Name of the component to be added.
comp
Component object to be added.
Description
The GridLayout class does not divide the layout area into subareas, and hence does not need to implement any functionality for this method. In order to conform to the LayoutManager interface, this method is an empty stub in the GridLayout implementation.
Imports
import java.awt.GridLayout;
Returns
None.
See Also
The Container class; the LayoutManager interface
Example
Refer to the example given under the corresponding function in the FlowLayout class.
layoutContainer(Container)
ClassName
GridLayout
Purpose
To lay out the specified container in rows, aligning the components within each row.
Syntax
public void layoutContainer(Container parent)
Parameters
parent
Container object to be laid out.
Description
This method lays out the components in the container, in a grid. Applications do not directly invoke this method. The layout method of the Container class results in a call to this method.
Imports
import java.awt.GridLayout;
Returns
None.
See Also
The LayoutManager interface; the Container class
Example
Refer to the example given under the corresponding function in the FlowLayout class.
minimumLayoutSize(Container)
ClassName
GridLayout
Purpose
To calculate the minimum size required to lay out the container, taking into account the components in the specified container.
Syntax
public Dimension minimumLayoutSize(Container parent)
Parameters
parent
Container that needs to be laid out.
Description
This method calculates and returns
the minimum dimensions required by the GridLayout manager to lay out the
components contained within the specified container. The minimum dimensions are
calculated according to the following formulae:
Minimum width = (Left + Right insets of parent) + (number of columns *
width of widest component in parent) + ((number of columns
-1)*inter-column gap)
Minimum height = (Top + Bottom insets of parent) + (number of rows *
height of tallest component in parent) + ((number of rows -1)*inter-row
gap)
Imports
import java.awt.GridLayout;
Returns
The return type of this method is Dimension. This return value contains the minimum height and width required to lay out the container in the specified panel.
See Also
The Container class; the LayoutManager interface
Example
Refer to the example given under the corresponding function in the FlowLayout class.
preferredLayoutSize(Container)
ClassName
GridLayout
Purpose
To calculate the preferred dimensions for this layout, taking into account the components in the specified container.
Syntax
public Dimension preferredLayoutSize(Container target)
Parameters
target
Container that needs to be laid out.
Description
This method computes the ideal width and height required by this layout. The values returned have no effect unless the program specifically enforces these dimensions.
Imports
import java.awt.GridLayout;
Returns
This method returns a Dimension object. This return value contains the ideal height and width required to lay out the container in the specified panel.
See Also
The container class; the LayoutManager interface
Example
Refer to the example given under the corresponding function in the FlowLayout class.
removeLayoutComponent(Component)
ClassName
GridLayout
Purpose
To remove the specified component from the layout.
Syntax
public void removeLayoutComponent(Component comp)
Parameters
comp
Component to be removed from the layout.
Description
This method is a dummy stub in the GridLayout class, as this layout manager doesn't need to maintain associations between components and areas on the display.
Imports
import java.awt.GridLayout;
Returns
None.
See Also
The Container class; the LayoutManager interface
Example
Refer to the example given under the corresponding function in the FlowLayout class.
toString()
ClassName
GridLayout
Purpose
To represent the values of the GridLayout object as a String.
Syntax
public String toString()
Parameters
None.
Description
This method returns a String representation of this object's values, namely, the horizontal gap, the vertical gap, the number of rows, and the number of columns. Each value is prefixed with a short descriptive tag.
Imports
import java.awt.GridLayout;
Returns
This method returns a String containing the values of the GridLayout object, with each value prefixed by a descriptive tag.
See Also
The toString method of the Object class
Example
Refer to the example given under the corresponding function in the FlowLayout class.
BorderLayout
Purpose
A layout manager that divides a rectangular area into five named areas and lays out components in each of these named areas.
Syntax
public class BorderLayout extends Object implements LayoutManager
Description
This layout manager divides the area of the Container into five named areas: North, South, East, West, and Center. A container that uses this layout manager must add a component to a named area. The preferred dimensions of the components, added to the North, South, East, and West areas, are honored and the component added to the Center area occupies all the remaining space. This is the default layout manager for all Window objects (such as Frame windows and Dialog windows). Figure 4-13 shows the inheritance hierarchy for the BorderLayout class.
PackageName
java.awt
Imports
import java.awt.BorderLayout;
Constructors
public BorderLayout()
public BorderLayout(int hgap, int
Parameters
hgap
The horizontal gap to leave between the named areas.
vgap
The vertical gap to leave between the named areas.
Example
Here is sample source code that illustrates BorderLayout construction.
/* default BorderLayout constructor */
Figure 4-13 Inheritance hierarchy for the BorderLayout class
addLayoutComponent(String, Component)
ClassName
BorderLayout
Purpose
To add the component to the named area of the container.
Syntax
public void addLayoutComponent(String name, Component comp)
Parameters
name
Name of the area within the container to add the component to.
comp
Component object to be added.
Description
The BorderLayout layout manager divides the Container into five areas and hence, the parameter name can be one of North, South, East, West, or Center. The specified component is associated with the area and is added to that portion of the Container.
Imports
import java.awt.BorderLayout;
Returns
None.
See Also
The Container class; the LayoutManager interface
Example
Refer to the example given under the corresponding function in the FlowLayout class.
layoutContainer(Container)
ClassName
BorderLayout
Purpose
To lay out the specified container by laying out the components in the areas where they have been added.
Syntax
public void layoutContainer(Container parent)
Parameters
parent
Container object to be laid out.
Description
This method lays out the components in the container, in the named areas where they were added. Applications do not directly invoke this method. The layout method of the Container class results in a call to this method.
Imports
import java.awt.BorderLayout;
Returns
None.
See Also
The LayoutManager interface; the class Container
Example
Refer to the example given under the corresponding function in the FlowLayout class.
minimumLayoutSize(Container)
ClassName
BorderLayout
Purpose
To calculate the minimum size required to lay out the container, taking into account the components in the specified container.
Syntax
public Dimension minimumLayoutSize(Container parent)
Parameters
parent
Container that needs to be laid out.
Description
This method calculates and returns the minimum dimensions required by the BorderLayout manager to lay out the components contained within the specified container.
Imports
import java.awt.BorderLayout;
Returns
This method returns a Dimension object. This return value contains the minimum height and width required to lay out the container in the specified panel.
See Also
The Container class; the LayoutManager interface
Example
Refer to the example given under the corresponding function in the FlowLayout class.
preferredLayoutSize(Container)
ClassName
BorderLayout
Purpose
To calculate the preferred dimensions for this layout, taking into account the components in the specified container.
Syntax
public Dimension preferredLayoutSize(Container target)
Parameters
target
The Container that needs to be laid out.
Description
This method computes the ideal width and height required by this layout. The values returned have no effect unless the program specifically enforces these dimensions.
Imports
import java.awt.BorderLayout;
Returns
This method reutrns a Dimension object. This return value contains the ideal height and width required to lay out the container in the specified panel.
See Also
The Container class; the LayoutManager interface
Example
Refer to the example given under the corresponding function in the FlowLayout class.
removeLayoutComponent(Component)
ClassName
BorderLayout
Purpose
To remove the specified component from the layout.
Syntax
public void removeLayoutComponent(Component comp)
Parameters
comp
Component to be removed from the layout.
Description
This method disassociates the component being removed from the named area to which it was added.
Imports
import java.awt.BorderLayout;
Returns
None.
See Also
The Container class; the LayoutManager interface
Example
Refer to the example given under the corresponding function in the FlowLayout class.
toString()
ClassName
BorderLayout
Purpose
To represent the values of the BorderLayout object as a String.
Syntax
public String toString()
Parameters
None.
Description
This method returns a String representation of this BorderLayout object's values, namely the horizontal gap and the vertical gap between the named areas, that the BorderLayout organizes its components in. Each value is prefixed with a short descriptive tag.
Imports
import java.awt.BorderLayout;
Returns
This method returns a String containing the values of the BorderLayout object, each value prefixed by a descriptive tag.
See Also
The toString method of the Object class
Example
Refer to the example given under the corresponding function in the FlowLayout class.
CardLayout
Purpose
A powerful layout manager that a container can use to lay out its components as a stack of cards, only one card being visible at any point of time.
Syntax
public class CardLayout extends Object implements LayoutManager
Description
This layout manager allows the Container to use the same real estate on the screen to present different views of different components. These views are arranged in a fashion similar to that of a deck of cards and the individual views can be flipped back and forth on the view stack. Figure 4-14 shows the inheritance hierarchy for the CardLayout class.
PackageName
java.awt
Imports
import java.awt.CardLayout;
Constructors
public CardLayout()
public CardLayout(int hgap, int vgap)
Parameters
hgap
The horizontal gap to leave between components on each card.
vgap
The vertical gap to leave between components on each card.
Example
Here is sample source code that illustrates CardLayout construction. The chapter project demonstrates the use of this layout manager in a more complete manner.
CardLayout c1 = new CardLayout(); // default constructor
Figure 4-14 Inheritance hierarchy for the CardLayout class
addLayoutComponent(String, Component)
ClassName
CardLayout
Purpose
To add the specified component to the layout, associating the component with the specified name.
Syntax
public void addLayoutComponent(String name, Component comp)
Parameters
name
Name of the component to be added.
comp
Component object to be added.
Description
The CardLayout class maintains the stack of cards to display. This stack is updated as components are added to the card stack. The parameter name can be any user-specified string. This parameter name is used by the show method to bring the named card into view.
Imports
import java.awt.CardLayout;
Returns
None.
See Also
The Container class; the LayoutManager interface; the show method of the CardLayout class
Example
The chapter project uses a CardLayout to display different views. Refer to it for more details.
first(Container)
ClassName
CardLayout
Purpose
To make the first card in the card stack visible.
Syntax
public void first(Container parent)
Parameters
parent
The parent Container object that this CardLayout object is the layout manager for.
Description
The first card in the card stack is brought into view and all the Components on this card are displayed.
Imports
import java.awt.CardLayout;
Returns
None.
Example
This method is used in the project at the end of this chapter.
last(Container)
ClassName
CardLayout
Purpose
To make the last card in the card stack visible.
Syntax
public void last(Container parent)
Parameters
parent
The parent Container object that this CardLayout object is the layout manager for.
Description
The card at the bottom of the card stack is brought into view.
Imports
import java.awt.CardLayout;
Returns
None.
Example
The project at the end of this chapter uses this method.
layoutContainer(Container)
ClassName
CardLayout
Purpose
To lay out the specified container in rows, aligning the components within each row.
Syntax
public void layoutContainer(Container parent)
Parameters
parent
Container object to be laid out.
Description
This method lays out the components in the container, in the named areas where they were added. Applications do not directly invoke this method. The layout method of the Container class results in a call to this method.
Imports
import java.awt.CardLayout;
Returns
None.
See Also
The LayoutManager interface; the Container class
Example
Refer to the example given under the corresponding function in the FlowLayout class and to the chapter project.
minimumLayoutSize(Container)
ClassName
CardLayout
Purpose
To calculate the minimum size required to lay out the container, taking into account the components in the specified container.
Syntax
public Dimension minimumLayoutSize(Container parent)
Parameters
parent
Container that needs to be laid out;
Description
This method calculates and returns the minimum dimensions required by the CardLayout manager to lay out the components contained within the specified container.
Imports
import java.awt.CardLayout;
Returns
The return type of this method is Dimension. This return value contains the minimum height and width required to lay out the container in the specified panel.
See Also
The Container class; the LayoutManager interface
Example
Refer to the example given under the corresponding function in the FlowLayout class and to the chapter project.
next(Container)
ClassName
CardLayout
Purpose
To make the next card in the card stack visible. If the current card is the bottom-most card in the stack then the first card is made visible.
Syntax
public void next(Container parent)
Parameters
parent
The parent Container object that this CardLayout object is the lay out manager for.
Description
The card currently in view is hidden and the card just below it is displayed.
Imports
import java.awt.CardLayout;
Returns
None.
Example
The project at the end of this chapter uses this method.
preferredLayoutSize(Container)
ClassName
CardLayout
Purpose
To calculate the preferred dimensions for this layout, taking into account the components in the specified container.
Syntax
public Dimension preferredLayoutSize(Container target)
Parameters
target
Container that needs to be laid out.
Description
This method computes the ideal width and height required by this layout. The values returned have no effect unless the program specifically enforces these dimensions.
Imports
import java.awt.CardLayout;
Returns
The return type of this method is Dimension. This return value contains the ideal height and width required to lay out the container in the specified panel.
See Also
The Container class; the LayoutManager interface
Example
Refer to the example given under the corresponding function in the FlowLayout class.
previous(Container)
ClassName
CardLayout
Purpose
To make the previous card in the card stack visible. The previous card to the top-most card in the stack is deemed to be the card at the bottom of the stack.
Syntax
public void previous(Container parent)
Parameters
parent
The parent Container object that this CardLayout object is the layout manager for
Description
The card currently in view is hidden and the card just above it is displayed.
Imports
import java.awt.CardLayout;
Returns
None.
Example
The project at the end of this chapter uses this method.
removeLayoutComponent(Component)
ClassName
CardLayout
Purpose
To remove the specified component from the layout.
Syntax
public void removeLayoutComponent(Component comp)
Parameters
comp
Component to be removed from the layout.
Description
This method disassociates the component being removed from the named area to which it was added.
Imports
import java.awt.CardLayout;
Returns
None.
See Also
The Container class; the LayoutManager interface
Example
Refer to the example given under the corresponding function in the FlowLayout class.
show(Container, String)
ClassName
CardLayout
Purpose
To make the specified card visible.
Syntax
public void show(Container parent, String name)
Parameters
parent
The parent Container object that this CardLayout object is the layout manager for.
name
Name of the card in the stack.
Description
The name parameter is specified when adding cards to the stack. This name is used to bring the specified card into view.
Imports
import java.awt.CardLayout;
Returns
None.
Example
The project at the end of this chapter uses this method.
toString()
ClassName
CardLayout
Purpose
To represent the parameter values of the CardLayout object as a String.
Syntax
public String toString()
Parameters
None.
Description
This method returns a String representation of this CardLayout object's values, namely, the horizontal and vertical gap to leave between components. Each value is prefixed with a short descriptive tag.
Imports
import java.awt.CardLayout;
Returns
This method returns a String containing the values of the CardLayout object, each value prefixed by a descriptive tag.
See Also
The toString method of the Object class
Example
Refer to the example given under the corresponding function in the FlowLayout class and to the chapter project.
GridBagLayout
Purpose
A very sophisticated layout manager that can lay out individual components using different constraints, in a manner such that components can be of different sizes and can be aligned vertically and horizontally.
Syntax
public class GridBagLayout extends Object implements LayoutManager
Description
This is the most powerful of all the layout managers that the Abstract Windowing Toolkit provides. Consequently, it is also the most complex layout manager. This layout manager can lay out components on a grid of cells, with each component occupying one or more cells in the grid. The group of cells occupied by a component is known as its display area. A GridBagConstraints object is associated with each component and these constraints instruct the layout manager to lay out the component in a particular manner. Refer to the GridBagConstraints class in this chapter for more information on customizing the appearance of a Container using a GridBagLayout layout manager. Figure 4-15 shows the inheritance hierarchy for the GridBagLayout class.
PackageName
java.awt
Imports
import java.awt.GridBagLayout;
Constructors
public GridBagLayout()
Parameters
None.
Example
Refer to the chapter project for a detailed example of a GridBagLayout layout manager
Figure 4-15 Inheritance hierarchy for the GridBagLayout class
addLayoutComponent(String, Component)
ClassName
GridBagLayout
Purpose
To add the specified component to the layout.
Syntax
public void addLayoutComponent(String name, Component comp)
Parameters
name
Name of the component to be added.
comp
Component object to be added.
Description
The GridBagLayout uses a GridBagConstraints object to lay out a component and does not associate a name with a component. In order to conform to the LayoutManager interface, this method exists but is an empty stub.
Imports
import java.awt.GridBagLayout;
Returns
None.
See Also
The Container class; the LayoutManager interface
Example
Refer to the chapter project to see how components are added to a GridBagLayout and how a GridBagConstraints object instructs this layout manager how to lay out the particular component.
AdjustForGravity(GridBagConstraints, Rectangle)
ClassName
GridBagLayout
Purpose
To modify the position and dimensions of the component depending on the specified constraints.
Syntax
protected void AdjustForGravity(GridBagConstraints c, Rectangle r)
Parameters
c
GridBagConstraints object specifying the constraints.
r
Rectangle specifying the coordinates and dimensions of a component.
Description
The coordinates of the rectangle r and the height and width dimensions are set according to the constraints, specified in the GridBagConstraints object c. The GridBagConstraints object specifies the geometry constraint, as well as any padding that is to be added to the size of the component.
Imports
import java.awt.GridBagLayout;
Returns
None.
Example
This method is a protected method in the GridBagLayout class and is used internally by the GridBagLayout implementation.
ArrangeGrid(Container)
ClassName
GridBagLayout
Purpose
To lay out the components in the container.
Syntax
protected void ArrangeGrid(Container parent)
Parameters
parent
Container to be laid out.
Description
This protected method implements the layout policy of this layout manager and causes the components in the specified container to be laid out according to the constraints associated with each component.
Imports
import java.awt.GridBagLayout;
Returns
None.
Example
This method is a protected method in the GridBagLayout class and is used internally by the GridBagLayout implementation.
DumpConstraints(GridBagConstraints)
ClassName
GridBagLayout
Purpose
To print the values of the specified GridBagConstraints object.
Syntax
protected void DumpConstraints(GridBagConstraints c)
Parameters
c
GridBagConstraints object whose values are to be printed on the screen.
Description
This method is useful for debugging the implementation of the GridBagLayout layout manager. It simply prints the values of the variables of the specified GridBagConstraints object.
Imports
import java.awt.GridBagLayout;
Returns
None.
Example
This method is a protected method in the GridBagLayout class and is only used for debugging purposes by the GridBagLayout implementation.
DumpLayoutInfo(GridBagLayoutInfo)
ClassName
GridBagLayout
Purpose
To print debugging information contained in the layout parameters of the specified GridBagLayoutInfo object.
Syntax
protected void DumpLayoutInfo(GridBagLayoutInfo i)
Parameters
i
GridBagLayoutInfo object whose values are to be printed on the screen.
Description
The GridBagLayoutInfo class is used internally by the GridBagLayout class and it contains information about the layout (such as the number of cells horizontally and vertically in the layout, the largest minimum width in each row, and other parameters). This method simply prints these parameter values.
Imports
import java.awt.GridBagLayout;
Returns
None.
Example
This method is a protected method in the GridBagLayout class and is only used for debugging purposes by the GridBagLayout implementation.
getConstraints(Component)
ClassName
GridBagLayout
Purpose
To get the GridBagConstraints object associated with the specified component.
Syntax
public GridBagConstraints getConstraints(Component comp)
Parameters
comp
Component object whose GridBagConstraints should be retrieved.
Description
This method returns a copy of the GridBagConstraints object associated with the specified component.
Imports
import java.awt.GridBagLayout;
Returns
The return value of this method is a GridBagConstraints object.
See Also
The GridBagConstraints class
Example
Please refer to the documentation on the GridBagConstraints class in this chapter.
getLayoutDimensions()
ClassName
GridBagLayout
Purpose
To get the largest minimum width measurements of the components in each row and the largest minimum height measurements of the components in each column .
Syntax
public int [] [] getLayoutDimensions()
Parameters
None.
Description
This method returns the largest minimum width and height measurements of components in each row and column of the layout.
Imports
import java.awt.GridBagLayout;
Returns
This method returns a two-dimensional array of integers, where the widths are specified in the first row of integers and the heights are specified in the second row.
Example
Please refer to chapter project for an example.
GetLayoutInfo(Container, int)
ClassName
GridBagLayout
Purpose
To determine the GridBagLayoutInfo parameters for the components in the specified container.
Syntax
protected GridBagLayoutInfo GetLayoutInfo(Container parent, int sizeflag)
Parameters
parent
Container object to be laid out.
sizeflag
Specifies whether to use each components' preferredSize method or minimumSize method, to determine the size of each component, while laying out the container.
Description
The GridBagLayoutInfo class is used internally by the GridBagLayout class and it contains information about the layout (such as the number of cells horizontally and vertically in the layout, the largest minimum width in each row, and other parameters). This method determines these parameter values.
Imports
import java.awt.GridBagLayout;
Returns
This method returns a GridBagLayoutInfo object containing the parameters for the current layout configuration.
Example
This method is a protected method in the GridBagLayout class and is only used internally by the GridBagLayout implementation.
getLayoutOrigin()
ClassName
GridBagLayout
Purpose
To get the coordinates of the starting point of this layout.
Syntax
public Point getLayoutOrigin()
Parameters
None.
Description
This method returns the x and y coordinates of the origin of the layout.
Imports
import java.awt.GridBagLayout;
Returns
This method returns a Point object that specifies the origin of the layout.
Example
Please refer to chapter project for an example.
getLayoutWeights()
ClassName
GridBagLayout
Purpose
To get the weights along each row and column.
Syntax
public double [] [] getLayoutWeights()
Parameters
None.
Description
This method returns the weights along each row and column of the layout. Weights are used to specify how to distribute space among the components of a row or column. Weights play an important role in the resizing behavior of a component. If the component is weighted in the direction of the x axis (GridBagConstraints.weightx), then the component will expand horizontally, and the component will expand vertically if it is weighted in the direction of the y axis (GridBagConstraints.weighty).
Imports
import java.awt.GridBagLayout;
Returns
This method returns a two-dimensional array of double precision floating point numbers that specifies the weights of the components in each row and column.
See Also
The weight and weighty variables of the GridBagConstraints class
Example
Please refer to chapter project for an example.
GetMinSize(Container, GridBagLayoutInfo)
ClassName
GridBagLayout
Purpose
To determine the minimum dimensions for the layout.
Syntax
protected Dimension GetMinSize(Container parent, GridBagLayoutInfo i)
Parameters
parent
Container object to be laid out.
i
GridBagLayoutInfo object containing the parameters of the overall layout configuration.
Description
This method is used to calculate
the minimum width and height measurements required of the layout. The minimum
dimensions are calculated according to the following formulae:
Minimum width = (Left + Right insets of parent) + (sum of largest minimum
widths in each column)
Minimum height = (Top + Bottom insets of parent) + (sum of largest
minimum heights in each row)
Imports
import java.awt.GridBagLayout;
Returns
This method returns a Dimension object containing the minimum dimensions of the layout.
See Also
The minimumLayoutSize method of this class
Example
This method is a protected method in the GridBagLayout class and is only used internally by the GridBagLayout implementation.
layoutContainer(Container)
ClassName
GridBagLayout
Purpose
To lay out the specified container according to the constraints for each component.
Syntax
public void layoutContainer(Container parent)
Parameters
parent
Container object to be laid out.
Description
This method lays out the components in the container, using the GridBagConstraints object associated with each component as a guideline for laying out the components. Applications do not directly invoke this method. The layout method of the Container class results in a call to this method.
Imports
import java.awt.GridBagLayout;
Returns
None.
See Also
The LayoutManager interface; the Container class
Example
Please refer to chapter project for an example.
location(int, int)
ClassName
GridBagLayout
Purpose
To get the coordinates of the top left corner of the component where the specified point x, y lies.
Syntax
public Point location(int x, int y)
Parameters
x
The x coordinate of the point.
y
The y coordinate of the point.
Description
This method returns the location of the component containing the specified point.
Imports
import java.awt.GridBagLayout;
Returns
This method returns the coordinates of the component that contains the point specified by the given x and y values.
Example
Please refer to chapter project for an example
lookupConstraints(Component)
ClassName
GridBagLayout
Purpose
To get the GridBagConstraints object associated with the specified component.
Syntax
protected GridBagConstraints lookupConstraints(Component comp)
Parameters
comp
Component object whose GridBagConstraints should be retrieved.
Description
This method retrieves the GridBagConstraints object associated with the specified component. The object returned by this method is the actual constraints object used by the GridBagLayout layout manager, and hence, care should be taken if one is modifying the parameters of this GridBagConstraints object.
Imports
import java.awt.GridBagLayout;
Returns
This method returns a GridBagConstraints object containing the constraints used for laying out the specified component.
See Also
The GridBagConstraints class
Example
This method is a protected method in the GridBagLayout class and is only used internally by the GridBagLayout implementation.
minimumLayoutSize(Container)
ClassName
GridBagLayout
Purpose
To calculate the minimum size required to lay out the container, taking into account the components in the specified container.
Syntax
public Dimension minimumLayoutSize(Container parent)
Parameters
parent
Container that needs to be laid out.
Description
This method calculates and returns the minimum dimensions required by the GridBagLayout manager to lay out the components contained within the specified container.
Imports
import java.awt.GridBagLayout;
Returns
The return type of this method is Dimension. This return value contains the minimum height and width required to lay out the container in the specified panel.
See Also
The Container class; the LayoutManager interface
Example
This method can be invoked on a GridBagLayout object, similar to the manner in which it is invoked on the corresponding function in the FlowLayout class.
preferredLayoutSize(Container)
ClassName
GridBagLayout
Purpose
To calculate the preferred dimensions for this layout, taking into account the components in the specified container.
Syntax
public Dimension preferredLayoutSize(Container target)
Parameters
target
Container that needs to be laid out.
Description
This method computes the ideal width and height required by this layout. The values returned have no effect unless the program specifically enforces these dimensions.
Imports
import java.awt.GridBagLayout;
Returns
The return type of this method is Dimension. This return value contains the ideal height and width required to lay out the container in the specified panel.
See Also
The Container class, the LayoutManager interface
Example
This method can be invoked on a GridBagLayout object, similar to the manner in which it is invoked on the corresponding function in the FlowLayout class.
removeLayoutComponent(Component)
ClassName
GridBagLayout
Purpose
To remove the specified component from the layout.
Syntax
public void removeLayoutComponent(Component comp)
Parameters
comp
Component to be removed from the layout.
Description
This method is a dummy stub in the GridBagLayout class, as this layout manager doesn't need to maintain associations between components and areas on the display.
Imports
import java.awt.GridBagLayout;
Returns
None.
See Also
The Container class; the LayoutManager interface
Example
This method can be invoked on a GridBagLayout object, similar to the manner in which it is invoked on the corresponding function in the FlowLayout class.
setConstraints(Component, GridBagConstraints)
ClassName
GridBagLayout
Purpose
To apply the GridBagConstraints to the specified component.
Syntax
public void setConstraints(Component comp, GridBagConstraints constraints)
Parameters
comp
Component object that the constraints are to be applied to.
constraints
Constraints for the component.
Description
This method applies the constraints specified in the constraints parameter to the specified component. These constraints are used to determine the position and dimensions of the component.
Imports
import java.awt.GridBagLayout;
Returns
None.
See Also
The GridBagConstraints class
Example
Please refer to the chapter project.
toString()
ClassName
GridBagLayout
Purpose
To represent the values of the GridBagLayout object as a String.
Syntax
public String toString()
Parameters
None.
Description
As the parameters associated with each component may be many in number, this method just prints the classname of this object (java.awt.GridBagLayout)
Imports
import java.awt.GridBagLayout;
Returns
This method returns a String containing the name of the GridBagLayout object.
See Also
The toString method of the Object class
Example
This method can be invoked on a GridBagLayout object similar to the manner in which it is invoked on the corresponding function in the FlowLayout class.
GridBagConstraints
Purpose
To specify the constraints for laying out a component using the GridBagLayout class.
Syntax
public class GridBagConstraints extends Object implements Cloneable
Description
The public variables of this class are used to specify the constraints for laying out a component within a container that uses a GridBagLayout object as its layout manager. Every component within the container is associated with an instance of this class. The GridBagConstraints values specify how the component is laid out within the container. Figure 4-16 shows the inheritance hierarchy for the GridBagConstraints class.
PackageName
java.awt
Imports
import java.awt.GridBagConstraints;
Constructors
public GridBagConstraints()
Parameters
None.
Variables
The following are the public variables that can be accessed and modified directly from within an application.
public int anchor
The value of this variable
specifies where in the display area the GridBagLayout class will anchor this
component if its display area is larger than the component. The point in the
display area where the component can be anchored can be specified using one of
the following values:
GridBagConstraints.NORTH
GridBagConstraints.SOUTH
GridBagConstraints.EAST
GridBagConstraints.WEST
GridBagConstraints.NORTHEAST
GridBagConstraints.NORTHWEST
GridBagConstraints.SOUTHEAST
GridBagConstraints.SOUTHWEST
GridBagConstraints.CENTER
The default value is GridBagConstraints.CENTER.
public Insets insets
The top, bottom, left, and right padding to leave between the component and the edge of its display area.
public int ipadx
The number of pixels to pad on the left and right sides of the component. Twice this value is added when calculating the minimum size for this component.
public int ipady
The number of pixels to pad on the top and bottom sides of the component. Twice this value is added when calculating the minimum size for this component.
public int gridx
Row number of the cell that occupies the upper-left corner of the component's display area. Setting this value to GridBagConstraints.RELATIVE instructs the GridBagLayout class to lay out this component to the right of the previously added component.
public int gridy
Column number of the cell at the upper-left corner of the display area. Setting this value to GridBagConstraints.RELATIVE instructs the GridBagLayout class to lay out this component just below the previously added component.
public int gridwidth
Width of the component's display area expressed as a number of cells in a row. Setting this value to GridBagConstraints.REMAINDER instructs the GridBagLayout class that this component is the last in its row. Setting this value to GridBagConstraints.RELATIVE instructs the GridBagLayout class that this component is next to the last in its row. The default value for this variable is 1.
public int gridheight
Height of the component's display area expressed as a number of cells in a column. Setting this value to GridBagConstraints.REMAINDER instructs the GridBagLayout class that this component is the last in its column. Setting this value to GridBagConstraints.RELATIVE instructs the GridBagLayout class that this component is next to the last in its column. The default value for this variable is 1.
public double weightx
Specifies whether or not the component's width should increase if it needs to be resized. A value must be specified for at least one component in a row. The default value for this variable is 0.
public double weighty
Specifies whether or not the component's height should increase if it needs to be resized. A value must be specified for at least one component in a column. The default value for this variable is 0.
Example
Refer to the section project for a detailed example that uses this class.
Figure 4-16 Inheritance hierarchy for the GridBagConstraints
class
clone()
ClassName
GridBagConstraints
Purpose
To create a duplicate of this GridBagConstraints object
Syntax
public Object clone()
Parameters
None.
Description
A new instance of a GridBagConstraints object is created and an exact duplicate of this GridBagConstraints is made.
Imports
import java.awt.GridBagConstraints;
Returns
The return value is an Object that is a clone of this GridBagConstraints object. This return value must be cast as a GridBagConstraints object in order to use it as one.
See Also
The clone method of the Object class; the Cloneable interface
Example
The following sample code demonstrates the implementation of this method.
import java.awt.GridBagConstraints;By now you are familiar with the layout manager interface and the API of Java's ready-made layout managers. In the following project we will build an application that demonstrates the functionality of each of the layout managers discussed in this chapter. The project will help you visualize the effect that each of the layout managers: FlowLayout, GridLayout, BorderLayout, CardLayout, and GridBagLayout have on the appearance of the Container. Figure 4-17 shows a screenshot of this project.
Figure 4-17 The Layout Demonstration project
In this project, we present a simple user interface that allows people to see the impact of each particular layout manager by selecting from a list of choices. The appearance and position of the components on the screen change with the selection of a new layout. In this project, a set of buttons is created and these buttons are placed within a Panel using different layout techniques. The simple user interface lets you flip through different layout views. This project also demonstrates customizing a layout by specifying parameters (such as the alignment mode, the horizontal gap between components, and so on).
1. Create and edit a file named LayoutDemo.java and use this file to enter the code for this project. First, ensure that the necessary Java modules are imported.
import java.awt.*;2. Now create a panel containing buttons. The SlidePanel class does this. The buttons on this panel will be laid out using different layout managers. By passing a different layout manager as the argument to the methods of the SlidePanel class, we can create different layouts of the buttons created by the SlidePanel class. This is accomplished by associating a layout manager with this Panel. The buttons are added to different areas of the panel. The significance of these areas depends on the layout manager being used to lay out the buttons on the panel. A Label component at the bottom of the panel displays the parameters of the layout manager used to lay out the components on the panel.
class SlidePanel extends Panel3. The GridBagLayout is a complex layout manager that requires constraints to be associated with each component. Add this method to the SlidePanel class. It arranges the buttons on the SlidePanel using the GridBagLayout class. The actual assignment of constraints to buttons and adding them to the layout is implemented as three protected methods: makeFirstRow, makeSecondRow, and makeThirdRow. A Label component at the bottom of the panel displays the parameters of the layout manager used to lay out the components on the panel.
// use the GridBagLayout class to layout buttons4. Assign constraints such that three buttons are laid out on the first row. Assigning a value to weightx of the GridBagConstraints object ensures that the buttons will expand horizontally and occupy space along the row, if the window is resized.
protected void makeFirstRow(GridBagConstraints gc,5. Create and lay out a button such that it occupies all the remaining space in a row. In addition, add a second button that occupies two rows.
protected void makeSecondRow(GridBagConstraints gc,6. On the third row, set the constraints so that a button occupies the entire row.
protected void makeThirdRow(GridBagConstraints gc,7. The main display needs to be able to display multiple views of the Panel of buttons, each view implementing a particular layout. The CardLayout layout manager is ideal for this task. Each view can be a card in the card layout. To display a layout, the card containing the view has to be made visible. In the constructor for the SlidePanel class, create new Panels of buttons and associate each with a different layout manager. The SlidePanel class is now complete.
SlidePanel()8. Now create the LayoutDemo class. For this class to run as an applet, it will have to extend the java.applet.Applet class. It maintains a reference to the card stack of panels and shuffles this card stack to display the various layout views. The display area that will contain the card stack of panels is positioned above the choice control with which you can change the layout being used to place the buttons on the screen. Using the Center and South areas of a BorderLayout accomplishes this in a snap. A Panel is used to neatly arrange the choice component and the layout description label. A Choice component, with the names of all the different layouts that can be viewed, is added to the Panel. This code is implemented in the init method of the LayoutDemo class. The following sample code is an example of what it takes to implement this portion of the project.
public class LayoutDemo extends Applet
All that remains to be implemented is a simple interface for the applet. Using
this interface you can view the different layouts.
9. The following event handler determines which of the controls was activated by the user and displays the corresponding card. The event handler brings the card, corresponding to the selected choice, to the top of the view stack.
public boolean action(Event evt, Object arg) else if ('First card'.equals(arg)) else if ('Last card'.equals(arg)) else if ('Next card'.equals(arg)) else if ('Previous card'.equals(arg))10. And now the final step of creating a main function, required to launch the application if it were executed as a stand-alone Java application. It creates a top-level Frame window and emulates the behavior of an applet, by invoking the init methods of the LayoutDemo class.
public static void main(String args[])
And we are done!
11. Save the LayoutDemo.java file and compile the project by executing the following command:
javac LayoutDemo.java12. Now run the program by executing the following command:
java LayoutDemoThe Layout Demonstration project used different layout managers to lay out the same set of buttons on the screen. The CardLayout layout manager was used to present the different layout views, one at a time, to the user. Panels and Frames were used as containers for components (such as Buttons and Labels). Choice components and buttons that initiated actions enabled the user to flip through the various views in the CardLayout. The ready-made layout managers that are in the Java AWT are sufficient for most applications. Choose the layout manager or windowing component most suited to your requirements. By nesting panels within panels, you can use different layout managers for different parts of your user interface.
Have fun in creating user interfaces for Java applications!
setMenuBar(MenuBar)
ClassName
Frame
Purpose
Sets the menu bar for this Frame to the specified MenuBar object
Syntax
public synchronized void setMenuBar(MenuBar mb)
Parameters
mb
The MenuBar object that represents the menu bar for this Frame
Description
This method specifies the menu bar to use on this Frame window.
Imports
import java.awt.Frame;
Returns
None.
See Also
The Image Class
Example
Refer to the examples in the MenuBar section of Chapter 6.
Politica de confidentialitate | Termeni si conditii de utilizare |
Vizualizari: 846
Importanta:
Termeni si conditii de utilizare | Contact
© SCRIGROUP 2024 . All rights reserved