I'd like to use Swing in an applet but don't want to force everyone to download the Java Plug-in or the complete 2 MB swingall.jar file.
Compilers like 'jikes' can emit the list of classes that a particular class, directly or indirectly depends on. You could get a unique set from all your compilations and pick up the Swing and your application classes that appear in your output to build the jar file.
NOTE: If you have any dynamically loaded classes (classes loaded as follows)
Sting className = // get the class name somehow; Class.forName(className);
There are some tools on the Web which do what you want also.
You may still run into a problem though - because the version of AWT library in the browser may be older than what the Swing library needs. And Swing is based on top of AWT.
You may want to look into the Jar indexing feature also and exploit that in a custom classloader which you use to get the classes.