JApplet, що використовувати paint або paintComponent

Зацікавило питання, як правильно малювати у swing. В одній книзі знайшов опис, як це робити, написав два класи. Потім спробував замінити paintComponent на paint. Працює, як і раніше. Хоча є різниця. Якщо у класі Screen прибрати виклик super(); з конструктора, то при використанні paintComponent під час завершення аплету вилітають винятки, при використанні paint() цього не відбувається. Все-таки хотілося б знати, як правильніше.

Але це якщо замість
Виняток з'являється при завершенні роботи аплету, тобто відловив це в консолі.

У че знайшов (випадково, колись якось не загострював увагу, ЗЛО копі-паста).
У документації з paint() зазначено, що з виклику методу він, своєю чергою, викликає три інших методу JComponent: спочатку paintComponent(), потім paintBorder() і, нарешті, paintChildren(). З порядку виклику методів можна побачити, що Swing малює себе знизу вгору. Важливим уроком є те, що для перевизначення зовнішнього вигляду компонента необхідно перевизначити метод paintComponent(), який безпосередньо несе відповідальність за малювання конкретного компонента на екрані.
А ексепшен валиться швидше за все через те, що важкий представник awt не знаходить легкої пари JPanel, яка ініціалізується викликом конструктора без параметрів JPanel (super();).