Si crei una classe java denominata Circle contenente il raggio di un cerchio come dato di istanza ed inoltre i seguenti metodi: • un costruttore senza parametri che assegna al raggio il valore zero • un costruttore con un parametro per istanziare un oggetto con raggio pari al valore contenuto nel parametro • un metodo per inserire il valore del raggio • un metodo per prelevare il valore del raggio • un metodo che renda l’area del cerchio • un metodo che renda il perimetro della circonferenza Si costruisca poi un applet java (classe JApplet, package javax.swing) che calcoli l’area di una corona circolare. Il programma dovrà: • richiedere all’utente di inserire il raggio interno ed esterno della corona circolare • istanziare in corrispondenza ai due raggi due oggetti della classe Circle • calcolare le due aree corrispondenti • calcolare l’area della corona circolare per differenza (si può utilizzare la medesima classe Circle impiegata nell’esercizio AreaCorona). L’applet dovrà inoltre disegnare una corona circolare. La corona circolare disegnata dovrà rispettare nelle proporzioni i valori inseriti dall’utente, mantenendo il rapporto tra i raggi. Suggerimenti 1) Per richiedere i raggi all’utente si impieghi il metodo statico showInputDialog della classe JOptionPane. 2) Per convertire un valore stringa in float si impieghi il metodo statico parseFloat della classe Float (analogamente, per convertire un valore stringa in double si può impiegare il metodo statico parseDouble della classe Double). 3) Di norma non si disegna direttamente su un’applet della classe JApplet, ma si pone “sopra” l’applet un oggetto della classe JPanel e si disegna su quest’ultimo, attraverso il metodo paintComponent. Si definirà quindi una classe JPanelDisegna che eredita da JPanel e si creerà all’interno dell’applet un oggetto di tale classe, qui denominato jPanelDisegna, che verrà posto sopra l’applet come di seguito indicato: Container c = getContentPane(); c.add(jPanelDisegna); 4) La classe JPanelDisegna conterrà il metodo paintComponent, con la seguente struttura: protected void paintComponent(Graphics g) { super.paintComponent(g); //si chiama il corrispondente metodo della superclasse ………………………………//altre istruzion (di disegno) } Si tratta di un metodo specializzato per il disegno. Subito dopo la chiamata al corrispondente metodo della superclasse, vanno inserite le istruzioni di disegno. Tale metodo viene eseguito automaticamente da Java ogni volta che sia necessario effettuare un refresh del disegno stesso. Il parametro g è un riferimento all’ambiente grafico. Si potrà quindi disegnare un cerchio con il metodo g.fillOval, scrivere una stringa con g.drawString o cambiare il colore del disegno, ad esempio in blu, con g.setColor(Color.blue). Qualora vi sia necessità di forzare il disegno da parte di java, si usi il metodo repaint(). 5) Si ponga attenzione al fatto che, poiché il disegno viene effettuato nell’oggetto jPanelDisegna, quest’ultimo dovrà essere a conoscenza dei valori dei raggi interno ed esterno della corona circolare che vengono assegnati dall’utente (o perlomeno del loro rapporto).