And my beef with applets is that an applet gives you the Graphics context with which you can draw stuff right out of the blue (or so it seems),
Thats one of the things I tried to addressed in the applet tute I wrote (in the tutorials section about applets-how they work), because it was really confusing to me at first too.
The gist of it is, an applet is a component in a web browser that only responds to commands/methods called from the web browser (init, start, stop, update/repaint) so normally an applet will only update its display when told to by the web browser, hence the Graphics appears "out of thin air".
You can also force drawing in an applet by using getGraphics() and releaseGraphics() (these may not be the actualy methods but you get the idea) to get and release the Graphics whenever you want. This used to be a performance improvement, but not with Swing and current jre's.
Hope that helps.