import java.applet.Applet;
import java.awt.*;
import java.awt.geom.Ellipse2D;
import javax.swing.JOptionPane;

public class AppletGrafica3 extends Applet
{   public void init()
	{	String input;
        
        //chiedi all'utente i valori per il rosso, il verde ed il blu controllando
        //la correttezza dell'input ed impostando a zero i valori non corretti
        JOptionPane.showMessageDialog(null,"Specificare il colore del disegno attraverso il formato RGB. \nI valori di ogni componente devono essere compresi tra 0 e 1. \nUsare il punto come separatore decimale.");
        input = JOptionPane.showInputDialog("rosso:");
        rosso = Float.parseFloat(input);
        if ((rosso>1)||(rosso<0))
        {   rosso=0;
        	JOptionPane.showMessageDialog(null,"Valore inserito non corretto.\nValore impostato a zero.");
    	}
        input = JOptionPane.showInputDialog("verde:");
        verde = Float.parseFloat(input);
        if ((verde>1)||(verde<0))
        {   verde=0;
        	JOptionPane.showMessageDialog(null,"Valore inserito non corretto.\nValore impostato a zero.");
    	}
        input = JOptionPane.showInputDialog("blu:");
        blu = Float.parseFloat(input);
        if ((blu>1)||(blu<0))
        {   blu=0;
        	JOptionPane.showMessageDialog(null,"Valore inserito non corretto.\nValore impostato a zero.");
    	}
	}

	public void paint(Graphics g)
    {   // ristabilisci il riferimento a Graphics2D
        Graphics2D g2=(Graphics2D)g;
        
        //imposta colore di tutti gli elementi grafici
        Color coloreElementi=new Color(rosso, verde, blu);
        g2.setColor(coloreElementi);
        
        //costruisci, colora e disegna parte superiore albero 
        Ellipse2D.Double parteSuperiore=new Ellipse2D.Double(5,10,30,20);
        g2.fill(parteSuperiore);
          
        //costruisci, colora e disegna parte inferiore albero 
        Rectangle parteInferiore=new Rectangle(17,30,6,40);
        g2.fill(parteInferiore);
        
        //costruisci albero traslato
        parteSuperiore.setFrame(35,10,30,20);
        parteInferiore.translate(30,0);
        g2.fill(parteSuperiore);
        g2.fill(parteInferiore);
        
        //costruisci casetta colorata passo passo
        //costruisci facciata senza tetto
        Rectangle facciata= new Rectangle(70,50,20,20);
        g2.fill(facciata);
        //costruisci parete laterale
        Polygon pareteLaterale= new Polygon();
        pareteLaterale.addPoint(90,70);
        pareteLaterale.addPoint(110,60);
        pareteLaterale.addPoint(110,40);
        pareteLaterale.addPoint(90,50);
        g2.fill(pareteLaterale);
        //costruisci frontespizio del tetto
        Polygon frontespizio= new Polygon();
        frontespizio.addPoint(70,50);
        frontespizio.addPoint(80,40);
        frontespizio.addPoint(90,50);
        g2.fill(frontespizio);
        //costruisci spiovente del tetto
        Polygon spiovente= new Polygon();
        spiovente.addPoint(90,50);
        spiovente.addPoint(110,40);
        spiovente.addPoint(100,30);
        spiovente.addPoint(80,40);
        g2.fill(spiovente);        
    }
    
    private float rosso;
    private float verde;
    private float blu;
}
        

 


Bacheca di Informatica Grafica

Forum studenti:

by FdA
ultima modifica: 09/02/2004 13.23