How to handle this situation is left to the layout manager's discretion. At times, there is no reasonable alternative: the container may not have enough room to display a component at its minimum size. It makes sense that a layout manager can ignore a preferred size after all, “preferred” means “give me this if it's available.” However, a layout manager can also ignore a minimum size. Second, a layout manager can do anything it wants with the components’ minimum and preferred sizes. Likewise, a CardLayout may manage many components but displays only one at a time. However, the BorderLayout will display at most five of them (the last component placed in each of its five named areas). For example, a Container using a BorderLayout might include thirty or forty components. First, a layout manager is free to ignore some of its components there is no requirement that a layout manager display everything. Therefore, we'll make a few observations before proceeding. Like any interface, LayoutManager specifies the methods a layout manager must implement but says nothing about how the LayoutManager does its job. Therefore, the LayoutManager interface is most important when you are writing a new layout manager we'll discuss it here because it's the scaffolding on which all layout managers are based. The system calls the appropriate methods in the layout manager when necessary. Once you have created a LayoutManager object and told the container to use it (by calling setLayout()), you're finished with it. You will never directly call the methods of the LayoutManager interface for the most part, layout managers do their work behind the scenes. It is the LayoutManager’s duty to determine the position and size of each component within the Container. The LayoutManager interface defines the responsibilities of something that wants to lay out Components within a Container. We will also discuss how to combine layouts to generate more complex screens and how to create your own LayoutManager for special situations. This chapter discusses all of them, along with the LayoutManager and LayoutManager2 interfaces we'll pay particular attention to how each layout manager computes positions for its components. The VariableGridLayout is also available with Netscape Navigator. Of the 1.0 layouts, all are available in the JDK and Internet Explorer. Four additional layouts are provided in the sun.awt package: HorizBagLayout, VerticalBagLayout, OrientableFlowLayout, and VariableGridLayout. The java.awt package provides five layout managers: FlowLayout, BorderLayout, GridLayout, CardLayout, and GridBagLayout. Thus, each component must know its space requirements the layout manager uses these to arrange the screen and your Java program never has to worry about platform-dependent positioning. (Java 1.1 also has a getMaximumSize() method the existing layout managers don't take advantage of it.) These methods report the minimum space that a component requires to be displayed correctly and the optimal size at which it looks best. ![]() ![]() To find out how much space a component needs, a layout manager calls the component's getMinimumSize() and getPreferredSize() methods. It asks each component in the layout how much space it requires, then arranges the components on the screen as best it can, based on the component sizes on the platform in use and the space available, resizing the components as needed. ![]() A layout manager takes care of this for you. Even for a simple layout, the code required to discover component sizes and compute absolute positions could be hundreds of lines, particularly if you concern yourself with what happens when the user resizes a window. Layout managers eliminate the need to compute component placement on your own, which would be a losing proposition since the size required for any component depends on the platform on which it is displayed. Every container has a LayoutManager that is responsible for positioning the component objects within it, regardless of the platform or the screen size. This chapter expands upon the idea of a layout manager, which was mentioned briefly in the previous chapter.
0 Comments
Leave a Reply. |