Em vários exemplos de Java2D na internet, os desenvolvedores usam o JPanel como componente para pintar gráficos. Noto também, porém com menos frequência, o uso do Canvas, que é parte da AWT.
Canvas parece ser feito propriamente para isso: pintura personalizada. A documentação do JPanel o descreve apenas como um container genérico.
A questão é: qual é mais apropriado para pintura pura? É boa prática misturar componentes AWT e Swing na mesma aplicação?
Canvas tem alguns métodos para multi-buffering, especialmente útil para aplicativos que trabalham em tela cheia. JPanel é double buffered por padrão, Canvas não. Pode haver melhorias de desempenho em uma implementação manual de double buffering?
[size=10]edit: pintagem >_<[/size]