Java Applets and Flash are two completely different things. Firstly, they require different plugins to run in a browser. Flash requires the user to have the Flash Player (or Shockwave player, depending), whereas to run an applet you need to have a Java Runtime Environment (JRE) of some sort on your machine.
Java is an object-oriented programming language and applets are written in this language. Flash is somewhat harder to describe! According to Google it is: a popular authoring software developed by Macromedia, is used to create vector graphics-based animation programs with full-screen navigation interfaces, graphic illustrations, and simple interactivity in an initialized, resizable file format that is small enough to stream across a normal modem connection.
Flash has it's own scripting language, ActionScript, which allows Flash developers/designers to d osome very very advanced things from physics engines to server communication.
Applets cannot be saved as images and I'd be interested to know how Flash can be made to save as an image! Both require plugins/runtime environments to display, although Flash has a very high plugin penetration.
There are similarities in what people do with Applets and Flash on the web, but they are quite different in what they can do and in how one makes them do things.
ActiveX is, again, different to Flash and Applets. Flash and Applets are completely cross browser (once the user has the plugin/JRE), whereas ActiveX is Microsoft specific. ActiveX is much closer to Java Applets than Flash. With ActiveX and Java Applets there can be security issues, but this is far less a problem with Flash.