mercoledì 31 dicembre 2008

Auguri di Un buon 2009 a Tutti!!!

Questo è un piccolo esercizio come ripasso di quello che è stato fatto da poco con l'intento di augurare un felice anno nuovo a tutti.
Freghi auguri a tutti!!!



import java.awt.*;
import javax.swing.*;
import java.awt.event.*;
import java.util.*;
import java.awt.geom.*;
import java.awt.Polygon;

public class AnnoNuovo{
int rotation=0;
int giro;
private Polygon poly;
private Polygon poly2;
private JFrame anno;
private PannelloAnno a;
private JButton accende;
private JButton spegne;
private JPanel pannelloBottoni=new JPanel(new GridLayout(2,1));
private java.util.Timer pallineAccese;
private int[] xpoints={0,-3,-10,-4,-7,0,7,4,10,3};
private int[] ypoints={-10,-3,-2,2,10,5,10,2,-2,-3};

private int[] zpoints={0,-5,-14,-6,-9,0,9,6,14,5};
private int[] jpoints={-14,-5,-2,2,13,7,13,2,-2,-5};

private int editX;
public AnnoNuovo(){
anno=new JFrame("Auguri di Buon Anno a tutti!!!");
anno.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
anno.setSize(600,600);
a=new PannelloAnno();
accende=new JButton("attiva animazione");
spegne=new JButton("disattiva animazione");
pannelloBottoni.add(accende);
pannelloBottoni.add(spegne);
anno.add(a,BorderLayout.CENTER);
anno.add(pannelloBottoni,BorderLayout.SOUTH);
accende.addActionListener(new BottoneAccende());
spegne.addActionListener(new BottoneSpegne());
anno.setVisible(true);
}

public class PannelloAnno extends JPanel{
public void paintComponent(Graphics g){
Graphics2D g2d=(Graphics2D) g;
Image annoImmagine=new ImageIcon("anno 2009.gif").getImage();
g.drawImage(annoImmagine,0,0,anno.getWidth(),anno.getHeight(),null);


g.setColor(getColore());
g.fillOval(245,355,18,18);//TAPPO SPUMANTE
g.setColor(getColore());
g.fillOval(100,465,18,18); //SPUMANTE
g.setColor(getColore());
g.fillOval(220,150,18,18); //artificio1
g.setColor(getColore());
g.fillOval(295,220,18,18); //OROLOGIO
g.setColor(getColore());
g.fillOval(370,220,18,18); //artificio2
g.setColor(getColore());
g.fillOval(430,200,18,18); //artificio3
g.setColor(getColore());
g.fillOval(515,133,18,18); //artificio4
g.setColor(getColore());
g.fillOval(335,100,18,18); //artificio5
g.setColor(getColore());
g.fillOval(562,312,10,10); //torre



poly=new Polygon(xpoints,ypoints,xpoints.length);
poly2=new Polygon(zpoints,jpoints,zpoints.length);
int ampiezza=getSize().width;
int altezza=getSize().height;

g2d.setColor(Color.RED);
g2d.drawString("BUON ANNO!!!",((ampiezza/2)-60)+editX,altezza-20);


g2d.translate(ampiezza/2,(altezza/2)-120);
g2d.scale(5,5);
g2d.rotate(Math.toRadians(rotation));
g2d.setColor(Color.YELLOW);

g2d.fill(poly);
g2d.fill(poly2);
g2d.setColor(Color.BLUE);
g2d.draw(poly);
g2d.draw(poly2);

}
}
private Color getColore(){
int verde=(int) (Math.random()*255);
int rosso=(int) (Math.random()*255);
int blu=(int) (Math.random()*255);
Color colore=new Color(verde,rosso,blu);
return colore;
}
public class BottoneAccende implements ActionListener{
public void actionPerformed(ActionEvent event){
pallineAccese=new java.util.Timer();
pallineAccese.schedule(new TimerTask(){
public void run(){
SwingUtilities.invokeLater(new Runnable(){
public void run(){
rotation+=2;
editX++;
anno.repaint();

}
});
}
},0,250);
}
}
public class BottoneSpegne implements ActionListener{
public void actionPerformed(ActionEvent event){
pallineAccese.cancel();
}
}
public static void main(String[] args){
AnnoNuovo anno=new AnnoNuovo();
}
}




Ecco a voi il programmino in funzione:



1 commento:

didatticaNatalizi ha detto...

Bravo! Molto bene. Contraccambio auguri di buon anno!!!