Si può fare ma .... ti faccio notare alcune cose, che devi cambiare.Originariamente inviato da auron567
2) nel mio caso ogni volta il cerchio viene spostato, ma vorrei fare in modo che ad ogni click sul frame il cerchio precedente rimane nella sua posizione e ne compare uno nuovo nel punto cliccato, come posso fare?
Al momento stai ancora usando il layout manager predefinito del content pane del frame, ovvero BorderLayout. Con un semplice add(component) aggiungi il componente nella parte CENTER del BorderLayout. Tale parte occupa tutto lo spazio disponibile. Ecco perché il MouseListener funziona bene. Perché il tuo componente è espanso per occupare tutto lo spazio del JFrame.
Nota che solo 1 componente per volta è visibile nella parte CENTER! Se anche ne aggiungessi altri con quel add() .... ne vedresti solo 1 (l'ultimo aggiunto)!
No, se vuoi avere più figure devi cambiare le cose. Hai 2 soluzioni: a) Ogni cerchio è disegnato con un componente a parte, posizionato e dimensionato esplicitamente della giusta dimensione (e devi togliere il layout manager dal content pane) oppure b) Definisci 1 solo componente che ha una lista di figure che disegni in blocco nel paintComponent().
In ogni caso devi cambiare un po' le cose. Non so se ti è chiaro .... chiedi se hai dubbi. Tra i miei Java Examples trovi esempi in cui c'è 1 componente unico che disegna più figure.

Rispondi quotando