Application JAVA sur la gestion parking
Application JAVA sur la gestion parking
Cet article propose en détaille une petite application JAVA pour simuler une interface pour la gestion d'un parking.
Vous pourrez télécharger le fichier au format zip il contient le code sources complet (les classes, les images, les sons, etc.).
Extrait du code source :
import java.awt.CheckboxGroup;
import java.awt.TextField;
import java.applet.*;
import java.awt.Panel;
import java.awt.Button;
import java.awt.Checkbox;
import java.awt.Label;
import java.awt.BorderLayout;
import java.awt.GridLayout;
import java.awt.Color;
import java.awt.Graphics;
import java.awt.Font;
import java.awt.Image;
import java.awt.Frame;
import java.awt.Event;
//import java.util.*;
public class Cparking extends Applet implements Runnable
{
static int positionEntree,positionSortie;
static Image porteEntree[]=new Image[4],porteSortie[]=new Image[4];
// ** detecteur fumée ************
TextField taux; // Zone d'affichage du taux après incrémentaion ou décrémentation
Button declencher; // boutons d'incrémentation et de décrémentation
CheckboxGroup tauxMax; // taux max de fumée eventuellement choisi
// ** niveau *****************
TextField nbreVoiture; // Zone d'affichage du nbre de voitures se trouvant dans le parking
CheckboxGroup niveau; // choix du niveau
// ** Entrée Sortie ************
Button entreeVoiture, sortieVoiture; // boutons permettant de déclencher l'entrée ou la sortie d'une voiture
Checkbox entreeActivee, sortieActivee; // box permattant d'activer ou de désactiver la sortie ou l'entr‚e d'un niveau
// ** Alarme Jet d'eau **********
Button arreterAlarme, declencherJetEau;
Checkbox alarmeActivee, jetEauActivee;
// ** box pour la simulation automatique **
Button simulaAuto;
Label autoLabel;
// ** bouton quiter et init ****
Button quitter,init;
//** objet thread**
Thread simulaThread=null;
int sleepTime=500,inc=0;
Image memoire;
Graphics Gmem;
* INSTENCIATION DES CLASSES
Niveau niveauA=new Niveau("Niveau A",10),niveauB=new Niveau("Niveau B",50),niveauC=new Niveau("Niveau C",60);
Alarme alarmeA=new Alarme(), alarmeB=new Alarme(), alarmeC=new Alarme();
JetEau jetEauA=new JetEau(), jetEauB=new JetEau(), jetEauC=new JetEau();
Voiture vehicule=new Voiture();
Feu flame=new Feu();
int y=0,z=0;
/**********************************************************************
// ....... méthode d'initialisation et d'affichage des objets graphiques
*********************************************************************** */
public void init()
{ // ------ chargement des valeurs des propriétés statiques de la classe Niveau ------
Niveau.ouverture=getAudioClip(getCodeBase(),"son/ouvrir.au");
Niveau.fermeture=getAudioClip(getCodeBase(),"son/fermer.au");
for(int i=0;i
{ Niveau.porteEntree[i]=getImage(getCodeBase(),"img/porteentree"+i+".gif");
Niveau.porteSortie[i]=getImage(getCodeBase(),"img/portesortie"+i+".gif");
}
//------ chargement des valeurs des propriétés statiques de la classe Jet Eau ---------
JetEau.SonJetEau=getAudioClip(getCodeBase(),"son/jeteau.au");
for(int i=0;i
{ JetEau.imageJetEau[i]=getImage(getCodeBase(),"img/jeteau"+i+".gif");
}
//------ chargement des valeurs des propriétés statiques de la classe Voiture ---------
Voiture.ronflementVoiture=getAudioClip(getCodeBase(),"son/ronflement.au");
for(int i=0;i
{
Voiture.imageVoitureEntrer[i]=getImage(getCodeBase(),"img/voiturealler"+i+".gif");
Voiture.imageVoitureSortir[i]=getImage(getCodeBase(),"img/voitureretour"+i+".gif");
Voiture.imageVoitureDescendre[i]=getImage(getCodeBase(),"img/voituredescendre"+i+".gif");
}
//------ chargement des valeurs des propriétés statiques de la classe Feu ---------
for(int i=0;i
{ Alarme.imageAlarme[i]=getImage(getCodeBase(),"img/alert"+i+".gif");
}
//------ chargement des valeurs des propriétés statiques de la classe Alarme ---------
for(int i=0;i
{ Feu.imageFeu[i]=getImage(getCodeBase(),"img/flame"+i+".gif");
}
//--------------Chargement des valeurs des propriétés de la classe Cparking----------
for(int i=0;i
{
porteEntree[i]=getImage(getCodeBase(),"img/parkingentree"+i+".gif");
porteSortie[i]=getImage(getCodeBase(),"img/parkingsortie"+i+".gif");
}
* AFFICHAGE DE L'INTERFACE
setBackground(Color.black);
memoire=createImage(size().width,size().height);
Gmem=memoire.getGraphics();
setBackground(Color.black);
// ** détectecteur fumée **
Panel panneau1=new Panel();
panneau1.setBackground(Color.lightGray);
Label titre1=new Label("* INCENDIE *");
titre1.setForeground(Color.blue);
panneau1.add(titre1);
declencher=new Button("Declencher Incendie");
declencher.setForeground(Color.black); panneau1.add(declencher);
Label titre1_1=new Label("Taux fumee MAX:");
titre1_1.setForeground(Color.black);panneau1.add(titre1_1);
tauxMax=new CheckboxGroup();
Checkbox max1 = new Checkbox("100",tauxMax,true);
max1.setForeground(Color.white);
Checkbox max2 = new Checkbox("300",tauxMax,false);
max2.setForeground(Color.white);
Checkbox max3 = new Checkbox("200",tauxMax,false);
max3.setForeground(Color.white);
Checkbox alea = new Checkbox("Aleatoire",tauxMax,false);
alea.setForeground(Color.white);
panneau1.add(max1);
panneau1.add(max2);
panneau1.add(max3);
panneau1.add(alea);
Label titre1_0=new Label("Taux fumee:");
titre1_0.setForeground(Color.black); panneau1.add(titre1_0);
taux=new TextField("000");
taux.setForeground(Color.white);taux.setBackground(Color.black);
taux.setEditable(false); panneau1.add(taux);
// ** Niveau **
Panel panneau2=new Panel(); panneau2.setBackground(Color.pink);
Label titre2=new Label(" * CHOIX DU NIVEAU *");
titre2.setForeground(Color.blue); panneau2.add(titre2);
niveau=new CheckboxGroup();
Checkbox niveau1 = new Checkbox("Niveau A ",niveau,true);
niveau1.setForeground(Color.white);
Checkbox niveau2 = new Checkbox("Niveau B ",niveau,false);
niveau2.setForeground(Color.white);
Checkbox niveau3 = new Checkbox("Niveau C ",niveau,false);
niveau3.setForeground(Color.white);
panneau2.add(niveau1);
panneau2.add(niveau2);
panneau2.add(niveau3);
Label titre2_1=new Label("Nombre de Voiture");
titre2_1.setForeground(Color.black);panneau2.add(titre2_1);
nbreVoiture=new TextField("000");
nbreVoiture.setForeground(Color.white);
nbreVoiture.setBackground(Color.black); panneau2.add(nbreVoiture);
nbreVoiture.setEditable(false);nbreVoiture.setForeground(Color.white);
// ** entrée sortie voiture **
Panel panneau3=new Panel();
panneau3.setBackground(Color.magenta);
Label titre3=new Label(" * ENTREES/SORTIES *");
titre3.setForeground(Color.blue); panneau3.add(titre3);
entreeVoiture=new Button("Entrer Voiture");
entreeVoiture.setForeground(Color.black);panneau3.add(entreeVoiture);
sortieVoiture=new Button("Sortir Voiture");
sortieVoiture.setForeground(Color.black);panneau3.add(sortieVoiture);
entreeActivee=new Checkbox("Entree Activee");
entreeActivee.setState(true);
entreeActivee.setForeground(Color.white); panneau3.add(entreeActivee);
sortieActivee=new Checkbox("Sortie Activee ");
sortieActivee.setState(true);
sortieActivee.setForeground(Color.white); panneau3.add(sortieActivee);
Panel panneau4=new Panel();
panneau4.setBackground(Color.lightGray);
Label titre4=new Label(" * ALARME ET JET EAU *");
titre4.setForeground(Color.blue); panneau4.add(titre4);
arreterAlarme=new Button("Stopper Alarme");
arreterAlarme.setForeground(Color.black); panneau4.add(arreterAlarme);
arreterAlarme.enable(false);
alarmeActivee=new Checkbox("Alarme Activee "); alarmeActivee.setState(true);
alarmeActivee.setForeground(Color.white); panneau4.add(alarmeActivee);
declencherJetEau=new Button("Declencher Jet Eau");
declencherJetEau.setForeground(Color.black);panneau4.add(declencherJetEau);
jetEauActivee=new Checkbox("Jet Eau Activee"); jetEauActivee.setState(true);
jetEauActivee.setForeground(Color.white); panneau4.add(jetEauActivee);
Panel panneau5=new Panel();
panneau5.setBackground(Color.gray);
simulaAuto=new Button("Simulation Auto");
simulaAuto.setForeground(Color.red);panneau5.add(simulaAuto);
init=new Button("Initialiser");
init.setForeground(Color.black); panneau5.add(init);
quitter=new Button("Quitter");
quitter.setForeground(Color.black); panneau5.add(quitter);
// *** affichage des panneaux ****
setLayout(new GridLayout(0,4,10,35));
add(panneau1);
add(panneau2);
add(panneau3);
add(panneau4);
add(panneau5);
simulaThread=new Thread(this);
simulaThread.start();
}
public void start()
{if (simulaThread==null)
{ simulaThread.start();
}
}
public void run()
{ inc=0;y=0;z=0;
while (true)
{if (inc==620)
inc=0;
if (y==3)
y=0;
if (z==7)
z=0;
repaint();
inc=inc+1; y=y+1;z=z+1;
try{simulaThread.sleep(20);
}catch(InterruptedException e){}
}
}
public void stop()
{if (simulaThread==null)
simulaThread.stop();
}
/*
La METHODE PAINT DE CPARKING
*
***************************************************************************** */
public void paint(Graphics g)
{ // ------- grand rectangle noire ------------
Gmem.setColor(Color.black);
Gmem.fillRect(0,0,size().width,size().height);
int x1,y1,width1,height1;
x1= size().width-(size().width*74)/100;
y1= size().height-((size().height*44)/100);
width1=((size().width*74/100)*30)/100;
height1=((size().height*44)/100)-34;
/* Gmem.drawImage(niveauA.porteSortie,170+inc,375,niveauA.porteSortie.getWidth(this),niveauA.porteSortie.getHeight(this),this);
Gmem.drawImage(alarme.imageAlarme[y],200,200,alarme.imageAlarme[y].getWidth(this),alarme.imageAlarme[y].getHeight(this),this);
Gmem.drawImage(feu.imageFeu[7],200,260,feu.imageFeu[7].getWidth(this),feu.imageFeu[7].getHeight(this),this);
Gmem.drawImage(feu.imageFeu[0],160+inc,375-10,feu.imageFeu[0].getWidth(this),feu.imageFeu[0].getHeight(this),this);
//Gmem.drawImage(feu.imageFeu[1],125+inc,375-60,feu.imageFeu[1].getWidth(this),feu.imageFeu[1].getHeight(this),this);
Gmem.drawImage(feu.imageFeu[z],400,200,feu.imageFeu[z].getWidth(this),feu.imageFeu[z].getHeight(this),this);
*/
// ------- dessin des différents niveaux-------
niveauA.seDesiner(Gmem,Color.yellow,niveauA.etiquette,x1,y1,width1+10,height1);
niveauB.seDesiner(Gmem,Color.red,niveauB.etiquette,x1+width1+10+10,y1,width1,height1);
niveauC.seDesiner(Gmem,Color.pink,niveauC.etiquette,x1+width1+width1+10+10+10,y1,width1,height1);
seDesiner();
if (inc>65&&inc
ouvrir();
Gmem.drawImage(Voiture.imageVoitureEntrer[2],0+inc,200,Voiture.imageVoitureEntrer[2].getWidth(this),Voiture.imageVoitureEntrer[2].getHeight(this),this);
Gmem.drawImage(Voiture.imageVoitureEntrer[1],590-inc,375,Voiture.imageVoitureEntrer[1].getWidth(this),Voiture.imageVoitureEntrer[1].getHeight(this),this);
//----- titre de la zone de simulation------
Gmem.setFont(new Font("TimesRoman",Font.BOLD+Font.ITALIC,15));
Gmem.setColor(Color.gray);
int x2,y2;
x2= size().width-(size().width*57)/100;
y2= size().height-((size().height*49)/100)-10;
Gmem.drawString("Gestion de la Securite dans un Parking",x2,y2);
//------ Affichage de la copie de la zone graphique de l'applet------
g.drawImage(memoire,0,0,this);
}
/*------------------ end paint----------------------------------------*/
public void update(Graphics g)
{paint(g);
}
/*public boolean action()
{
}
*/