1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100
|
import java.awt.BorderLayout;
import java.awt.Color;
import java.awt.FlowLayout;
import java.awt.Graphics;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.util.ArrayList;
import java.util.Random;
import java.util.Timer;
import java.util.TimerTask;
import javax.swing.JColorChooser;
import javax.swing.JFrame;
import javax.swing.JPanel;
class Fenetre extends JPanel {
private Color couleurdefond ;
private ArrayList<Disque> mesdisques ;
Fenetre(Color couleur,ArrayList<Disque> mesdisques) {
this.couleurdefond = couleur ;
this.mesdisques = mesdisques ;
setLayout(new FlowLayout());
setBackground(couleur) ;
}
public void paint(Graphics g) {
final int width=getWidth();
final int height=getHeight();
Random randomno = new Random();
int diametre = randomno.nextInt(150);
int abscisse = randomno.nextInt(width-diametre);
int ordonnee = randomno.nextInt(height-diametre);
int rcolor = randomno.nextInt(255);
int gcolor = randomno.nextInt(255);
int bcolor = randomno.nextInt(255);
super.paint(g);
Disque disque = new Disque(abscisse,ordonnee,diametre,rcolor,gcolor,bcolor,g) ;
mesdisques.add(disque);
for (Disque mondisque : mesdisques) {
int olddiam = mondisque.getDiametre() ;
olddiam+=1 ;
mondisque.setDiametre(olddiam) ;
mondisque.Afficher(g) ;
}
}
}
class Disque {
private int XO,YO,diam,rC,gC,bC ;
private Graphics g ;
Disque(int XO,int YO,int diam,int rC,int gC,int bC,Graphics g) {
this.XO = XO ;this.YO = YO ;this.diam = diam ;this.rC = rC ;this.gC = gC ;this.bC = bC ;
//g.setColor(new Color(rC,gC,bC)) ;
//g.fillOval(XO, YO, diam, diam) ;
//g.dispose() ;
}
void Afficher(Graphics g) {
g.setColor(new Color(this.rC,this.gC,this.bC)) ;
g.fillOval(this.XO, this.YO, this.diam, this.diam) ;
//g.dispose() ;
}
int getDiametre() {
return this.diam ;
}
void setDiametre(int diametre) {
this.diam = diametre ;
}
}
public class DisquesAleatoires {
public static void main(String[] args) {
ArrayList<Disque> mesdisques = new ArrayList<Disque>() ;
long temps = 2000; // délai avant de répéter la tache : 2000 = 2 seconde
long startTime = 0; // délai avant la mise en route (0 demarre immediatement)
Timer timer = new Timer(); // création du timer
Color couleur = Color.WHITE ;
JFrame frame = new JFrame("Disques Aléatoires");
final JPanel panel = new Fenetre(couleur,mesdisques) ;
frame.add(panel) ;
TimerTask tache = new TimerTask() { // création et spécification de la tache à effectuer
@Override
public void run() {
panel.repaint() ;
}
};
timer.scheduleAtFixedRate(tache,startTime,temps); // ici on lance la mecanique
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setLocation(200, 200);
frame.setSize(600,400);
frame.setResizable(true) ;
frame.setVisible(true);
}
} |
Partager