- AWT, override
paint()
.
- Swing top-level container (e.g.s are
JFrame
, JWindow
, JDialog
, JApplet
..), override paint()
. But there are a number of good reasons not to paint in a TLC. A subject for a separate question, perhaps.
- The rest of Swing (any component that derives from
JComponent
), override paintComponent()
.
- Neither override nor explicitly call
paintComponents()
, leave it to the API to call it when needed.
Be sure to also use @Override
notation whenever overriding a method.
Doing so would hint at the problem of trying to override paintComponent(..)
in a JFrame
(it has no such method), which is quite common to see.
与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…