| Building your own manager | |
|---|
The following manager sets the size of its (single) child (ignoring insets):
class SizeLayout implements LayoutManager {
Dimension size;
public SizeLayout() {
size = new Dimension(0, 0);
}
public SizeLayout(Dimension s) {
size = s;
}
public void setSize(Dimension s) {
size = s;
}
public Dimension getSize() {
return size;
}
public void addLayoutComponent(String n, Component c) {
}
public void removeLayoutComponent(Component c) {
}
public Dimension preferredLayoutSize(Container parent) {
if (parent.countComponents() == 0)
return new Dimension(width, height);
// use the first component added
Component c = parent.getComponent(0);
Dimension d = new Dimension(c.preferredSize());
return d;
}
public Dimension minimumLayoutSize(Container parent) {
if (parent.countComponents() == 0)
return new Dimension(width, height);
// use the first component added
Component c = parent.getComponent(0);
Dimension d = new Dimension(c.minimumSize());
return d;
}
public void layoutContainer(Container parent) {
if (parent.countComponents() == 0)
return;
// use the first component added
Component c = parent.getComponent(0);
c.reshape(0, 0, size.width, size.height);
c.validate();
}
}
| Slide 95 | ©Copyright 1997 | Jan Newmarch |