// Scott DeRuiter 4/7/03 // MoreCards.java // Simple example of a CardLayout import java.awt.*; import java.awt.event.*; import javax.swing.*; public class MoreCards extends JApplet implements MouseListener { private Image [] image; private int index, max; private JPanel [] panel; private CardLayout cards; private Container c; private Font font; public MoreCards ( ) { index = 0; max = 30; font = new Font ( "Serif", Font.BOLD, 26 ); } public void init ( ) { c = this.getContentPane(); image = new Image[max]; panel = new JPanel[max]; cards = new CardLayout ( ); c.setLayout ( cards ); for ( int i = 0; i < image.length; i++ ) { image[i] = getImage ( getDocumentBase ( ), "pic" + i + ".jpg" ); WaitForImage ( this, image[i] ); panel[i] = new MyPanel ( image[i], i + 1 ); panel[i].addMouseListener(this); c.add ( panel[i], "Panel" + (i+1) ); } getContentPane().setBackground( Color.blue ); } public void WaitForImage ( JApplet component, Image image ) { MediaTracker tracker = new MediaTracker ( component ); try { tracker.addImage ( image, 0 ); tracker.waitForID ( 0 ); } catch ( InterruptedException e ) { e.printStackTrace ( ); } } class MyPanel extends JPanel { private Image pict; private int number; public MyPanel ( Image im, int i ) { pict = im; number = i; } public void paintComponent(Graphics g) { super.paintComponent ( g ); g.setFont ( font ); g.drawImage ( pict, 0, 0, this ); g.setColor ( Color.black ); g.fillRect ( 6, 364, 188, 30 ); g.setColor ( Color.white ); g.fillRect ( 8, 366, 184, 26 ); g.setColor ( Color.red ); g.drawString ( "PICTURE " + number, 16, 388 ); } } public void mousePressed(MouseEvent evt) { if ( evt.isShiftDown() ) cards.first ( c ); else if ( evt.isMetaDown() ) cards.previous ( c ); else cards.next ( c ); } public void mouseEntered(MouseEvent evt) { } public void mouseExited(MouseEvent evt) { } public void mouseClicked(MouseEvent evt) { } public void mouseReleased(MouseEvent evt) { } }