![]() |
![]() |
![]() |
![]() |
![]() |
|
Finally, you supply definitions for the methods that return minimum and preferred sizes. In the following example, the sizes are arbitrarily set such that the program displays small squares:
import java.awt.*;
public class MovieApplicationLayout implements LayoutManager {
private Component meter;
private Component list;
private Component form;
private Component poster;
public void addLayoutComponent(String name, Component o) {
if (name.equals("Meter")) {meter = o;}
else if (name.equals("List")) {list = o;}
else if (name.equals("Form")) {form = o;}
else if (name.equals("Poster")) {poster = o;}
else {System.err.println(name + " argument unrecognized");}
}
public void removeLayoutComponent(Component o) {
if (meter == o) {meter = null;}
else if (list == o) {list = null;}
else if (form == o) {form = null;}
else if (poster == o) {poster = null;}
}
public void layoutContainer(Container parent) {
Dimension d = parent.getSize();
int height = d.height;
int width = d.width;
if(meter != null) {
meter.setBounds(0, 0, (int) (width / 3),
(int) (height * 2 / 3)); }
if(list != null) {
list.setBounds((int) (2 * width / 3), 0,
(int) (width / 3), height); }
if(form != null) {
form.setBounds(0, (int) (height * 2 / 3),
(int) (2 * width / 3), (int)(height / 3)); }
if(poster != null) {
poster.setBounds((int) (width / 3), 0,
(int) (width / 3), (int) (height * 2 / 3)); }
}
public Dimension minimumLayoutSize(Container parent) {
return new Dimension(50, 50);
}
public Dimension preferredLayoutSize(Container parent) {
return new Dimension(50, 50);
}
}