Originariamente inviato da VincenzoTheBest
PanPaint è un componente lightweight, quindi puoi benissimo fare l'override del metodo paint().
Ehm .. no. Allora: tecnicamente sì, certo che si può fare. Ma in generale sarebbe meglio di no (e salvo casi particolari).

Per i componenti Swing (per cui c'è l'apposito paintComponent), l'override di paint andrebbe fatto SOLO se si sa davvero che cosa si sta facendo. Chiarisco meglio: il paint in JComponent "fattorizza" il disegno in 3 fasi (in questo ordine): prima paintComponent, poi paintBorder, poi paintChildren.

Se si facesse banalmente l'override di paint così:

codice:
public void paint(Graphics g) {
    super.paint(g);
    .........
}
Se nel componente ci fosse un bordo (Border) e/o dei componenti dentro, si potrebbe (anche solo per errore) andare a disegnare sopra bordi/componenti!