Javier ha scritto:
ora vorrei fare in modo che in seguito al click sulla capitale (coordinate x coordinate y) mi aggiunga un evento.
Consigli?
Innanzitutto la immagine della mappa sarebbe meglio disegnarla tramite custom-painting estendendo es. JPanel. È ovviamente possibile mettere la mappa come Icon in un es. JLabel ma se estendi JPanel e disegni sul Graphics hai 2 vantaggi: innanzitutto puoi controllare precisamente la posizione di origine della immagine nel componente e poi avendo fatto una classe apposita, puoi incapsulare lì dentro tutta la logica di gestione (questo ha a che fare con il design delle classi ... non con l'aspetto grafico).
Visto che le aree "calde" sono solo i punti delle capitali, sarebbe ovviamente sensato prevedere che il punto sia valido entro un certo raggio di pochi pixel .... si riesce difficilmente a cliccare un pixel preciso!
Quindi ti basta fare in modo che il tuo componente-mappa possa ricevere una associazione tra punti (x/y) e magari una tua interface che permette di notificare l'evento.
Se vuoi arrivare a definire un "listener" custom come quelli di Swing, ci sono un po' di cose da sapere e replicare ma sarebbe possibile.
Si potrebbe addirittura pensare di permettere una cosa del tipo:
imageMapComponent.addMapPointListener(12, 34, new MapPointListener() { ..... });
dove MapPointListener è una
tua interfaccia di "listener".
E giusto come nota finale: nei framework AWT e Swing non esiste nulla per gestire mappe "cliccabili". O fai a mano o con l'uso di librerie esterne già fatte (non ne conosco).