A imagem que estou usando no cursor possui tamanho de 16 x 16. No entanto, quando seto ela no cursor, ela aparece num tamanho bem maior que seu tamanho original. Vejam meu código:
Toolkit toolkit = Toolkit.getDefaultToolkit();
URL cursorUrl = TodosRamaisPanelForm.class.getResource(Preferencias.ICON_DISCANDO);
Image cursorImage = new ImageIcon(cursorUrl).getImage();
defaultCursor = toolkit.createCustomCursor(cursorImage, new Point(16, 16), "Discando");
“new Point (16,16)” não é o tamanho da imagem e sim a localização do “hot spot” dentro do cursor. Digamos que você tenha um cursor em formato de flecha. A ponta da flecha é o tal do “hot spot”.
Estou achando que ocorre o seguinte:
a) O sistema está deixando apenas criar cursores de 32 x 32 (ou 48 x 48, sei lá que valor o tamanho do cursor tem no seu sistema…)
b) Como você passou uma imagem 16 x 16, essa imagem é ampliada para 32 x 32.
Para saber qual é o tamanho preferido pelo seu sistema, chame getBestCursorSize e veja que tamanho ele retorna.
O que eu sugeriria é criar uma imagem 32 x 32, mas usar apenas 16 x 16 pixels dessa imagem, para criar um cursor do jeito que você quer.