I've noted that adding a non-static method to the class containing the main method in a java-application and then calling it from within the main-method, results in a compilation error. This I can understand, since this class is never instantiated.
However, adding a non-static method to an Applet-class and calling it from within, say, the paint method works fine. Why is this? Is the applet-class somehow instantiated by appletviewer, or is there another explanation as to why the former isn't allowed while the latter is?
Absolutely. See the "Life Cycle of an Applet" section of the Applets tutorial. In particular: