Como desenhar um círculo de aparência decente em Java

Eu tentei usar o método drawOval com altura e largura iguais, mas à medida que o diâmetro aumenta, o círculo fica pior. O que posso fazer para ter um círculo decente, não importa o tamanho. Como eu implementaria o anti-aliasing em java ou algum outro método?