customized panel LayoutDemoPanel
import java.awt.*;
import java.awt.event.*;
public class LayoutDemoPanel extends Panel {
ActionListener listener;
public LayoutDemoPanel (ActionListener actionListener) {
listener = actionListener;
setLayout(new CardLayout());
add("one", create(new FlowLayout()));
add("two", create(new BorderLayout()));
add("three", create(new GridLayout(2, 2)));
add("four", create(new BorderLayout(10, 10)));
add("five", create(new FlowLayout(FlowLayout.LEFT, 10, 10)));
add("six", create(new GridLayout(2, 2, 10, 10)));
}
private Panel create(LayoutManager layout) {
Button b = null;
Panel p = new Panel();
p.setLayout(layout);
b = new Button("one");
b.addActionListener(listener);
p.add("North", b);
b = new Button("two");
b.addActionListener(listener);
p.add("West", b);
b = new Button("three");
b.addActionListener(listener);
p.add("South", b);
b = new Button("four");
b.addActionListener(listener);
p.add("East", b);
b = new Button("five");
b.addActionListener(listener);
p.add("Center", b);
b = new Button("six");
b.addActionListener(listener);
p.add("Center", b);
return p;
}
}
LayoutDemoApplet
import java.awt.*;
import java.awt.event.*;
import java.applet.Applet;
public class LayoutDemoApplet extends Applet
implements ActionListener {
LayoutDemoPanel layoutDemoPanel;
Label layoutLabel;
String[] layoutName = { "FlowLayout()",
"BorderLayout()",
"GridLayout(2, 2)",
"BorderLayout(10, 10)",
"FlowLayout(FlowLayout.LEFT, 10, 10)",
"GridLayout(2, 2, 10, 10)"};
int layoutNum = 0;
public void init() {
setLayout(new BorderLayout());
layoutLabel = new Label(layoutName[layoutNum]);
add("North",layoutLabel);
add("Center", layoutDemoPanel = new LayoutDemoPanel(this));
Panel p = new Panel();
p.setLayout(new FlowLayout());
add("South", p);
p.add(new Label(layoutDemoPanel.getLayout().toString()));
Button b = new Button("first");
b.addActionListener(this);
p.add(b);
b = new Button("next");
b.addActionListener(this);
p.add(b);
b = new Button("previous");
b.addActionListener(this);
p.add(b);
b = new Button("last");
b.addActionListener(this);
p.add(b);
}
public void actionPerformed(ActionEvent e) {
String arg = e.getActionCommand();
if ("first".equals(arg)) {
((CardLayout)layoutDemoPanel.getLayout()).first(layoutDemoPanel);
layoutNum = 0;
} else if ("next".equals(arg)) {
((CardLayout)layoutDemoPanel.getLayout()).next(layoutDemoPanel);
layoutNum = (layoutNum == layoutName.length - 1?0:layoutNum+1);
} else if ("previous".equals(arg)) {
((CardLayout)layoutDemoPanel.getLayout()).previous(layoutDemoPanel);
layoutNum = (layoutNum == 0?layoutName.length - 1:layoutNum-1);
} else if ("last".equals(arg)) {
((CardLayout)layoutDemoPanel.getLayout()).last(layoutDemoPanel);
layoutNum = layoutName.length - 1;
} else {
((CardLayout)layoutDemoPanel.getLayout()).show(layoutDemoPanel,(String)arg);
switch (((String)arg).charAt(2)) {
case 'e' : layoutNum = 0; break;
case 'o' : layoutNum = 1; break;
case 'r' : layoutNum = 2; break;
case 'u' : layoutNum = 3; break;
case 'v' : layoutNum = 4; break;
case 'x' : layoutNum = 5; break;
}
}
layoutLabel.setText(layoutName[layoutNum]);
}
}