// Scott DeRuiter 4/2/03 // BoxIt.java // Simple example of a BoxLayout import java.awt.*; import java.awt.event.*; import javax.swing.*; public class BoxIt extends JApplet implements ActionListener { private Image [] image; private boolean click; private int index, max; private JButton [] pic; public BoxIt ( ) { index = 0; max = 30; } public void init ( ) { click = false; getContentPane().setBackground( Color.black ); Box vbox1 = Box.createVerticalBox(); Box vbox2 = Box.createVerticalBox(); image = new Image[max]; pic = new JButton[max]; for ( int i = 0; i < image.length; i++ ) { pic[i] = new JButton ( ); image[i] = getImage ( getDocumentBase ( ), "pic" + i + ".jpg" ); WaitForImage ( this, image[i] ); if ( i <= 14 ) CreateAButton ( vbox1, pic[i], i+1 ); else CreateAButton ( vbox2, pic[i], i+1 ); } getContentPane().add ( BorderLayout.WEST, vbox1 ); getContentPane().add ( BorderLayout.EAST, vbox2 ); } public void CreateAButton ( Box vbox, JButton pic, int i ) { String fill = ""; if ( i < 10 ) fill = "0"; pic = new JButton ( "PIC " + fill + i ); pic.addActionListener ( this ); vbox.add ( pic ); } 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 ( ); } } public void paint(Graphics g) { boolean b = false; if ( !click ) super.paint ( g ); else b = g.drawImage ( image[index], 70, 0, this ); click = false; } public void actionPerformed ( ActionEvent evt ) { String command = evt.getActionCommand(); for ( int i = 0; i < image.length; i++ ) CheckForClick ( command, i+1 ); } public void CheckForClick ( String command, int i ) { String fill = ""; if ( i < 10 ) fill = "0"; if ( command.equals ( "PIC " + fill + i ) ) { click = true; index = i - 1; repaint ( ); } } }