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:
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;
}
}