/* 
   Questo applet disegna un cerchio giallo su sfondo rosso.
   Il cerchio ha diametro la meta' del minimo tra l'altezza e la 
   larghezza dell'applet ed e' centrato nel centro dell'applet.
   Se l'applet viene modificato nelle dimensioni, il cerchio si 
   adatta in conseguenza.
*/ 

import java.awt.Color;
import java.awt.Graphics;
import java.awt.Graphics2D;
import java.applet.Applet;
import java.awt.geom.Ellipse2D;

public class AppletCerchio extends Applet {

    private int altezza, larghezza;  // le dimensioni dell'applet
    private int diametro; // il diametro del cerchio.

    public void init() {
	setBackground(Color.red);
	impostaDati();
    }

    public void paint(Graphics g) {
	Graphics2D g2 = (Graphics2D)g;
	impostaDati();
	// calcolo i valori per disegnare il cerchio:
	int estremoX = (larghezza - diametro)/2;
	int estremoY = (altezza - diametro)/2;
	Ellipse2D.Double cerchio = new Ellipse2D.Double(estremoX, estremoY, 
							diametro, diametro);
	g2.setColor(Color.yellow);
	g2.fill(cerchio);
    }
  
    // Calcola le dimensioni correnti dell'applet e il raggio del cerchio
    private void impostaDati() {
	// ottiene le attuali dimensioni della finestra dell'applet:
	altezza = getHeight();
	larghezza = getWidth();
	// calcola il diametro del cerchio:
	if (altezza > larghezza) 
	    diametro = larghezza/2;
	else
	    diametro = altezza/2;
    }
}
