Ruota immagine attorno al personaggio (JAVA)

Sì, so che puoi usare AffineTransformation, tuttavia voglio che la mia immagine della spada ruoti attorno a un personaggio che ho creato (blocco nero disegnato in grafica) a 360 gradi visibilmente invece di una sola rotazione. Fondamentalmente voglio un sistema di rotazione come quello di Terraria. So come ottenere la xey del personaggio, quindi la domanda è: come faccio a ruotare attorno a un punto che definisco? il mio codice è impostato in questo modo

f.addMouseListener(new MouseAdapter(){ public void mouseClicked(MouseEvent e){ swordSwinging=true; } }); 

 if(swordSwinging){ //swinging code goes here } repaint();