Esercizio P4.4 Scrivere un applet che chieda all’utente di inserire la misura di un raggio e tracci una circonferenza con quel raggio Esercizi Anno Accademico 2003/04 Docente modulo 2: Barbara Masucci Barbara Masucci Linguaggi di Programmazione II 2003-04 2 File ExP4_4.java import import import import import public class ExP4_4 extends Applet { //Chiede il raggio in input public void init() { String input= JOptionPane.showInputDialog("raggio:"); radius = Integer.parseInt(input); } java.applet.Applet; java.awt.Graphics; java.awt.Graphics2D; java.awt.geom.Ellipse2D; javax.swing.JOptionPane; /** Questo applet disegna un cerchio con un certo raggio. */ Barbara Masucci Linguaggi di Programmazione II 2003-04 3 Barbara Masucci Linguaggi di Programmazione II 2003-04 4 Esercizio P4.5 //disegna il cerchio public void paint(Graphics g) { Graphics2D g2 = (Graphics2D)g; Ellipse2D.Double circle = new Ellipse2D.Double(0, 0, 2 * radius, 2 * radius); g2.draw(circle); } private double radius; Scrivere un applet che disegni due cerchi pieni, uno rosa e uno viola. Usate un colore standard per uno e uno personalizzato per l’altro } Barbara Masucci Linguaggi di Programmazione II 2003-04 5 Barbara Masucci Linguaggi di Programmazione II 2003-04 6 1 File ExP4_5.java import import import import import import public class ExP4_5 extends Applet { public void paint(Graphics g) { Graphics2D g2 = (Graphics2D)g; double radius = 50; java.applet.Applet; java.awt.Color; java.awt.Graphics; java.awt.Graphics2D; java.awt.geom.Ellipse2D; javax.swing.JOptionPane; // disegna un cerchio rosa Ellipse2D.Double circle = new Ellipse2D.Double(0, 0, 2 * radius, 2 * radius); g2.setColor(Color.pink); g2.fill(circle); /** Questo applet disegna due cerchi, uno rosa e uno viola. */ Barbara Masucci Linguaggi di Programmazione II 2003-04 7 Barbara Masucci Linguaggi di Programmazione II 2003-04 8 Esercizio P4.7 // disegna un cerchio viola Ellipse2D.Double circle2 = new Ellipse2D.Double(0, 2 * radius, 2 * radius, 2 * radius); g2.setColor(new Color(0.7F, 0, 0.7F)); g2.fill(circle2); } } Scrivere un applet che disegni una grande ellisse, che tocchi i bordi della finestra dell’applet sia riempita con il vostro colore preferito si ridimensioni automaticamente quando si ridimensiona la finestra Utilizzare i metodi getWidth() e getHeight() della classe java.applet.Applet per calcolare le dimensioni della finestra dell’applet Barbara Masucci Linguaggi di Programmazione II 2003-04 9 File ExP4_7.java import import import import import java.applet.Applet; java.awt.Color; java.awt.Graphics; java.awt.Graphics2D; java.awt.geom.Ellipse2D; Linguaggi di Programmazione II 2003-04 Linguaggi di Programmazione II 2003-04 10 public class ExP4_7 extends Applet { public void paint(Graphics g) { Graphics2D g2 = (Graphics2D)g; Ellipse2D.Double ellipse = new Ellipse2D.Double(0, 0, getWidth(), getHeight()); /** Questo applet riempie la finestra con un ellisse che si ridimensiona ogni volta che la finestra viene ridimensionata */ Barbara Masucci Barbara Masucci 11 g2.setColor(Color.pink); g2.fill(ellipse); } } Barbara Masucci Linguaggi di Programmazione II 2003-04 12 2 Esercizio P4.14 File ExP4_14.java Scrivere un applet che visualizzi gli anelli olimpici, colorati con i colori delle olimpiadi Utilizzare una classe Ring per disegnare ciascun anello import import import import java.applet.Applet; java.awt.Color; java.awt.Graphics; java.awt.Graphics2D; /** Questo applet mostra gli anelli olimpici */ Barbara Masucci Linguaggi di Programmazione II 2003-04 13 public class ExP4_14 extends Applet { public void paint(Graphics g) { Graphics2D g2 = (Graphics2D)g; final int RADIUS = 50; final int DISTANCE = 80; Linguaggi di Programmazione II 2003-04 Linguaggi di Programmazione II 2003-04 14 x = x + DISTANCE; Ring black = new Ring(x, y, RADIUS, Color.black); black.draw(g2); x = x + DISTANCE; Ring red = new Ring(x, y, RADIUS, Color.red); red.draw(g2); double x = 0; double y = 0; Ring blue = new Ring(x, y, RADIUS, Color.blue); blue.draw(g2); Barbara Masucci Barbara Masucci 15 Barbara Masucci Linguaggi di Programmazione II 2003-04 16 File Ring.java x = DISTANCE / 2; y = DISTANCE; Ring yellow = new Ring(x, y, RADIUS, Color.yellow); yellow.draw(g2); import import import import x = x + DISTANCE; Ring green = new Ring(x, y, RADIUS, Color.green); green.draw(g2); } java.awt.Color; java.awt.Graphics; java.awt.Graphics2D; java.awt.geom.Ellipse2D; /** Una classe per gli anelli olimpici */ } Barbara Masucci Linguaggi di Programmazione II 2003-04 17 Barbara Masucci Linguaggi di Programmazione II 2003-04 18 3 public class Ring { /** Costruisce un anello olimpico @param anX la coordinata x @param aY la coordinata y @param aRadius il raggio del cerchio @param aColor il colore del cerchio */ Barbara Masucci Linguaggi di Programmazione II 2003-04 public Ring(double anX, double aY, double aRadius, Color aColor) { x = anX; y = aY; radius = aRadius; color = aColor; } 19 Barbara Masucci Linguaggi di Programmazione II 2003-04 20 /** Disegna l’anello @param g2 il contesto grafico private private private private */ public void draw(Graphics2D g2) { g2.setColor(color); Ellipse2D.Double e = new Ellipse2D.Double(x, y, 2 * radius, 2 * radius); g2.draw(e); } Barbara Masucci Linguaggi di Programmazione II 2003-04 double x; double y; double radius; Color color; } 21 Barbara Masucci Linguaggi di Programmazione II 2003-04 22 4