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