//  Scott DeRuiter     3/28/2003
//  GridWithImages.java
//  Using a grid layout, click and print some cards.

import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
 
public class GridWithImages extends JApplet implements MouseListener 
{
 
	private int xpos, ypos, width, height, max;
	private Image cards;
	private DrawingArea [] draw;


    	public GridWithImages()
        {
		xpos = ypos = width = height = 40;
		max = 5;
		draw = new DrawingArea [ max ];
    	}
 
	public void init ( )  
	{
		setBackground ( Color.black );
        	Container contentPane = getContentPane();
        	contentPane.setLayout ( new GridLayout ( 0, max ) );
   
		for ( int i = 0; i < draw.length; i++ )   
        	{
			draw[i] = new DrawingArea ( );
      			draw[i].setBackground( new Color ( 130, 150, 140 ) );
        		contentPane.add ( draw[i] );
			draw[i].addMouseListener(this);
		}

		cards = getImage ( getDocumentBase ( ), "smallcards.gif" );
		WaitForImage ( this, cards );
	}

	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 Insets getInsets() 
	{
      		return new Insets ( 3, 3, 3, 3 );
   	}
 
	class DrawingArea extends JPanel 
    	{
		public void paintComponent ( Graphics g ) 
		{
			super.paintComponent ( g );
			int wid = this.getWidth ( );
			int hei = this.getHeight ( );
			int x = (int)( Math.random ( ) * 13 );
			int y = (int)( Math.random ( ) * 4 );
         		g.drawImage( cards, wid / 2 - 50, hei / 2 - 75, wid / 2 + 50, 
				hei / 2 + 75, x * 40, y * 60, 
				( x + 1 ) * 40, ( y + 1 ) * 60, this );
		}
	}
 
	public void mousePressed ( MouseEvent e )   
	{
		for ( int i = 0; i < draw.length; i++ )
			draw[i].repaint ( );

	}

	public void mouseReleased ( MouseEvent e )    {}

	public void mouseClicked ( MouseEvent e )    {}
	public void mouseEntered ( MouseEvent e )    {}
	public void mouseExited ( MouseEvent e )    {}
}

Back to Lesson 28 Examples

Back to Java Main Page