Originariamente inviato da auron567
di preciso questa operazione dove la devo compiere? in quale metodo?
Codice parziale (giusto solo per farti capire) di una classe PannelloEllissi che estende JPanel.

codice:
public class PannelloEllissi extends JPanel {
    private ArrayList<Ellipse2D.Double> listaEllissi;

    public PannelloEllissi() {
        listaEllissi = new ArrayList<Ellipse2D.Double>();
    }

    public void aggiungiEllisse(Ellipse2D.Double ell) {
        // Aggiungi l'ellisse nella collezione
        // Chiedi il repaint()
    }

    protected void paintComponent(Graphics g) {
        super.paintComponent(g);

        Graphics2D g2d = (Graphics2D) g;

        // Fai una iterazione sulla collezione
        // Per ogni ellisse lo disegni sul Graphics2D
    }
}
Da un'altra parte (es. dove gestisci il JFrame) registri un MouseListener sulla istanza del tuo PannelloEllissi. Nel mousePressed() fai/calcoli quello che vuoi, istanzi un Ellipse2D.Double e lo passi semplicemente al aggiungiEllisse()

Originariamente inviato da auron567
per il primo problema nessuna soluzione?
Ma non ho ben capito .... vuoi un cerchio iniziale che sia invisibile all'inizio e diventi visibile al primo click. Ma poi vuoi che ne compaia uno ad ogni click. Insomma vuoi proprio così? Entrambe le cose?