evGrid

evGrid is a lightweight java component that provides a pretty sharp-looking grid control.

evGrid is compatible with Java 1.02 and higher, meaning it will work in most java-enabled browsers. Plus, evGrid is fast and small. It is made of of three .class files for a total size of about 13k. Try it for yourself:

You don't have Java!!
The column width are adjustable (just drag between columns).

evGrid has been tested on: Netscape 3/Win95, Netscape 4/Win95, Netscape 4/FreeBSD, IE4/Win95. It should work well on almost any Java platform.

Javadoc documentation is available here.

Getting evGrid
I really need to do some more cleanup and add some features (like settable colours) that there's no real excuse not to have. If you would really like to get a copy NOW, email me

Source for example applet above:

import java.applet.*;
import java.awt.*;
import java.util.*;

public class gridExample extends Applet
{
	private evGridX grid;
	private Image redBall, yellowBall;

	public gridExample()
	{

	}

	public void init() 
	{
 		MediaTracker mt = new MediaTracker(this);
		redBall = getImage(getCodeBase(), "images/red-ball.gif");
		yellowBall = getImage(getCodeBase(), "images/yellow-ball.gif");
		mt.addImage(redBall, 1);
		mt.addImage(yellowBall,1);
		try
		{
			mt.waitForID(1);
		} catch (InterruptedException e) { System.out.println("Error. Icon Load Interrupted.");}

		grid = new evGridX(3);

		setLayout(new BorderLayout());
		add("Center", grid);
		grid.setColWidth(0,25);

		grid.setColTitle(0,"");
		grid.setColTitle(1,"Site");
		grid.setColTitle(2,"Comments");
		repaint();
		
		grid.addIcon(0,0,redBall);
		grid.addItem(1,0,"Javasoft");
		grid.addItem(2,0,"Java's home page");
		grid.addHiddenData(0,"http://www.javasoft.com");
		
		grid.addIcon(0,1,redBall);
		grid.addItem(1,1,"DevCenter");
		grid.addItem(2,1,"Netscape's source for development info");
		grid.addHiddenData(1,"http://developer.netscape.com");	

		grid.addIcon(0,2,redBall);
		grid.addItem(1,2,"JARS");
		grid.addItem(2,2,"Java Application Rating Service");
		grid.addHiddenData(2,"http://developer.netscape.com");	

		grid.addIcon(0,3,redBall);
		grid.addItem(1,3,"SSI Micro");
		grid.addItem(2,3,"Home ISP");
		grid.addHiddenData(3,"http://www.ssimicro.com");	

		grid.addIcon(0,4,redBall);
		grid.addItem(1,4,"JavaWorld");
		grid.addItem(2,4,"JavaWorld Magazine Homepage");
		grid.addHiddenData(4,"http://www.javaworld.com");	

		grid.addIcon(0,5,redBall);
		grid.addItem(1,5,"FreeBSD inc");
		grid.addItem(2,5,"Home of FreeBSD");
		grid.addHiddenData(5,"http://www.freebsd.org");	

		grid.addIcon(0,6,redBall);
		grid.addItem(1,6,"RedHat");
		grid.addItem(2,6,"RedHat Linux Home");
		grid.addHiddenData(6,"http://www.redhat.com");	

		grid.addIcon(0,7,redBall);
		grid.addItem(1,7,"Kaffe Homepage");
		grid.addItem(2,7,"A good alternative JVM");
		grid.addHiddenData(7,"http://www.kaffe.org");	
		
		grid.addIcon(0,8,redBall);
		grid.addItem(1,8,"NNSL");
		grid.addItem(2,8,"Northern News Services Limited");
		grid.addHiddenData(8,"http://www.nnsl.com");	

		grid.addIcon(0,8,redBall);
		grid.addItem(1,8,"Links River");
		grid.addItem(2,8,"Excellent source of Northern Canada Info");
		grid.addHiddenData(8,"http://www.denendeh.com");	

		grid.addIcon(0,9,redBall);
		grid.addItem(1,9,"Wired");
		grid.addItem(2,9,"Need I Say More?");
		grid.addHiddenData(9,"http://www.wired.com");	

		grid.addIcon(0,10,redBall);
		grid.addItem(1,10,"PilotGear");
		grid.addItem(2,10,"Source of great Pilot software");
		grid.addHiddenData(10,"http://www.pilotgear.com");	

		grid.addIcon(0,11,redBall);
		grid.addItem(1,11,"Mozilla");
		grid.addItem(2,11,"Check out how the Mozilla guys are doing");
		grid.addHiddenData(11,"http://www.mozilla.org");	

		grid.addIcon(0,12,redBall);
		grid.addItem(1,12,"Microsoft");
		grid.addItem(2,12,"The guys we all love to pick on");
		grid.addHiddenData(12,"http://www.microsoft.com");	

		grid.addIcon(0,13,redBall);
		grid.addItem(1,13,"MySQL");
		grid.addItem(2,13,"MySQL is a semi-free SQL server");
		grid.addHiddenData(13,"http://www.tcx.se");	

		grid.addIcon(0,14,redBall);
		grid.addItem(1,14,"SQUID");
		grid.addItem(2,14,"Squid caching software homepage");
		grid.addHiddenData(14,"http://squid.nlanr.net");	

		grid.addIcon(0,15,redBall);
		grid.addItem(1,15,"Apache");
		grid.addItem(2,15,"Everyone's favourite Web Server");
		grid.addHiddenData(15,"http://www.apache.org");	

		grid.addIcon(0,16,redBall);
		grid.addItem(1,16,"Apple");
		grid.addItem(2,16,"Why not..?");
		grid.addHiddenData(16,"http://www.apple.com");	

		grid.addIcon(0,17,redBall);
		grid.addItem(1,17,"Nunanet");
		grid.addItem(2,17,"Nunanet Communications");
		grid.addHiddenData(17,"http://www.nunanet.com");	

		grid.addIcon(0,18,redBall);
		grid.addItem(1,18,"Sakku");
		grid.addItem(2,18,"Sakku's ISP");
		grid.addHiddenData(18,"http://www.artic.ca");



		repaint();
	}

    	public boolean handleEvent(Event evt)
        {
	    if (evt.target == grid.getGrid())
		{
		    // show the URL int the status bar
		    showStatus("Selected: "+grid.getHiddenData(grid.getSelected()));
		    //turn the ball yellow...
		    grid.addIcon(0,grid.getSelected(),yellowBall);
    		return true;
		}
    	return false;
    }
	
}
  • package NN