//LayoutDemo //Demonstrates the Card Layout Manager //Andy Harris, 04/00 import java.awt.*; import java.applet.*; import java.awt.event.*; public class LayoutDemo extends Applet implements ActionListener{ //Control panel components Panel pnlControls = new Panel(); Button btnFirst = new Button("|<<"); Button btnPrev = new Button("<=="); Button btnNext = new Button("==>"); Button btnLast = new Button(">>|"); Button btnFlow = new Button("Flow"); Button btnGrid = new Button("Grid"); Button btnBorder = new Button("Border"); Button btnNull = new Button ("Null"); //The Cards Panel pnlCards = new Panel(); CardLayout stack = new CardLayout(); Panel pnlFlow = new Panel(); Panel pnlGrid = new Panel(); Panel pnlBorder = new Panel(); Panel pnlNull = new Panel(); //Components for the flow layout Button btnFlowA = new Button("A"); Button btnFlowB = new Button("B"); Label lblFlow = new Label("Flow Layout"); Button btnFlowC = new Button("C"); Button btnFlowD = new Button("D"); //Components for the grid layout Button btnGridA = new Button("A"); Button btnGridB = new Button("B"); Label lblGrid = new Label("Grid"); Label lblLayout = new Label("Layout"); Button btnGridC = new Button("C"); Button btnGridD = new Button("D"); //Components for the border layout Button btnBorderA = new Button("A"); Button btnBorderB = new Button("B"); Label lblBorder = new Label("Border Layout"); Button btnBorderC = new Button("C"); Button btnBorderD = new Button("D"); //Components for the null layout Button btnNullA = new Button("A"); Button btnNullB = new Button("B"); Label lblNull = new Label("Null Layout"); Button btnNullC = new Button("C"); Button btnNullD = new Button("D"); public void init(){ //set up the main page this.setLayout(new BorderLayout()); this.add(pnlControls, BorderLayout.SOUTH); this.add(pnlCards, BorderLayout.CENTER); //set up the control panel pnlControls.setFont(new Font("SansSerif", Font.BOLD, 20)); pnlControls.setLayout(new GridLayout(2,4)); pnlControls.add(btnFlow); pnlControls.add(btnGrid); pnlControls.add(btnBorder); pnlControls.add(btnNull); pnlControls.add(btnFirst); pnlControls.add(btnPrev); pnlControls.add(btnNext); pnlControls.add(btnLast); //register actionListeners btnFlow.addActionListener(this); btnGrid.addActionListener(this); btnBorder.addActionListener(this); btnNull.addActionListener(this); btnFirst.addActionListener(this); btnPrev.addActionListener(this); btnNext.addActionListener(this); btnLast.addActionListener(this); //set up the Flow panel pnlFlow.setLayout(new FlowLayout()); pnlFlow.add(btnFlowA); pnlFlow.add(btnFlowB); pnlFlow.add(lblFlow); pnlFlow.add(btnFlowC); pnlFlow.add(btnFlowD); //set up the Grid panel pnlGrid.setLayout(new GridLayout(3,2)); pnlGrid.add(btnGridA); pnlGrid.add(btnGridB); pnlGrid.add(lblGrid); pnlGrid.add(lblLayout); pnlGrid.add(btnGridC); pnlGrid.add(btnGridD); //set up the Border panel pnlBorder.setLayout(new BorderLayout()); pnlBorder.add(btnBorderA, BorderLayout.NORTH); pnlBorder.add(btnBorderB, BorderLayout.EAST); pnlBorder.add(lblBorder, BorderLayout.CENTER); pnlBorder.add(btnBorderC, BorderLayout.WEST); pnlBorder.add(btnBorderD, BorderLayout.SOUTH); //set up the Null panel pnlNull.setLayout(null); pnlNull.add(btnNullA); btnNullA.setSize (30, 30); btnNullA.setLocation(0,0); pnlNull.add(btnNullB); btnNullB.setSize (30, 30); btnNullB.setLocation(180,0); pnlNull.add(lblNull); lblNull.setSize(100,20); lblNull.setLocation(50,90); pnlNull.add(btnNullC); btnNullC.setSize(30, 30); btnNullC.setLocation(0,180); pnlNull.add(btnNullD); btnNullD.setSize (30, 30); btnNullD.setLocation(180,180); //set up the card panel pnlCards.setLayout(stack); pnlCards.setFont(new Font("SansSerif", Font.BOLD, 20)); pnlCards.add(pnlFlow, "Flow"); pnlCards.add(pnlGrid, "Grid"); pnlCards.add(pnlBorder, "Border"); pnlCards.add(pnlNull, "Null"); } // end init public void actionPerformed(ActionEvent e){ String theCommand = e.getActionCommand(); if (theCommand.equals("|<<")){ stack.first(pnlCards); } else if (theCommand.equals("<==")){ stack.previous(pnlCards); } else if (theCommand.equals("==>")){ stack.next(pnlCards); } else if (theCommand.equals(">>|")){ stack.last(pnlCards); } else if (theCommand.equals("Flow")){ stack.show(pnlCards, "Flow"); } else if (theCommand.equals("Grid")){ stack.show(pnlCards, "Grid"); } else if (theCommand.equals("Border")){ stack.show(pnlCards, "Border"); } else if (theCommand.equals("Null")){ stack.show(pnlCards, "Null"); } // end if //do nothing for now } // end actionPerformed } // end CardDemo def