Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum. Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

SIMULATEUR DE L’ALGORITHME PRODUCTEUR/CONSOMMATEUR (INGÉNIEUR ISIMS 2008)


Information sur la source

Catégorie :Application Classé sous : simulateur, Producteur, Consommateur, Java, ISIMS Niveau : Débutant Date de création : 25/04/2008 Date de mise à jour : 25/04/2008 12:00:12 Vu / téléchargé: 4 955 / 521

Note :
Aucune note

Commentaire sur cette source (8)
Ajouter un commentaire et/ou une note

Description

Cliquez pour voir la capture en taille normale
C’est une petite application avec des composantes graphiques du package swing de java qui fait la simulation de l’algorithme producteur/consommateur
J’espère que ça vous aide bonne continuation
 

Source

  • import javax.swing.*;
  • import java.awt.event.*;
  • import java.awt.*;
  • public class TestBuffer extends JFrame implements ActionListener
  • {
  • public Bufer buffer;
  • public Producteur producteur;
  • public Consommateur consommateur;
  • public Container container;
  • public ImageIcon[] image;
  • public JButton compteur;
  • public JPanel totale;
  • public JPanel producteurP;
  • public JPanel consommateurP;
  • public JPanel controler;
  • public JPanel p_controler;
  • public JPanel c_controler;
  • public JLabel titre;
  • public ImageIcon pro_img;
  • public ImageIcon con_img;
  • public JButton pro;
  • public JButton con;
  • public ImageIcon on_img;
  • public ImageIcon off_img;
  • public JButton pro_on;
  • public JButton con_on;
  • public JButton pro_off;
  • public JButton con_off;
  • public ImageIcon xon_img;
  • public ImageIcon xoff_img;
  • public JButton xon;
  • public JButton xoff;
  • public ImageIcon controle_img;
  • public JButton controle;
  • public static TestBuffer t;
  • public ImageIcon logo;
  • public TestBuffer()
  • {
  • try
  • {
  • UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName());
  • SwingUtilities.updateComponentTreeUI(this);
  • }
  • catch (Exception e)
  • {
  • System.out.println("FrmUsers.FrmUsers : impossible d'appliquer le thème du système");
  • }
  • logo = new ImageIcon("logo.png");
  • this.setIconImage(logo.getImage());
  • this.setTitle("Producteur/Consommateur");
  • controle_img=new ImageIcon("controle.png");
  • controle=new JButton();
  • controle.setIcon(controle_img);
  • pro_img=new ImageIcon("producteur.png");
  • con_img=new ImageIcon("consommateur.png");
  • pro=new JButton();
  • pro.setIcon(pro_img);
  • con=new JButton();
  • con.setIcon(con_img);
  • xon_img=new ImageIcon("xon.png");
  • xoff_img=new ImageIcon("xoff.png");
  • xon=new JButton();
  • xon.setIcon(xon_img);
  • xoff=new JButton();
  • xoff.setIcon(xoff_img);
  • on_img=new ImageIcon("on.png");
  • off_img=new ImageIcon("off.png");
  • pro_on=new JButton();
  • pro_on.setIcon(on_img);
  • con_on=new JButton();
  • con_on.setIcon(on_img);
  • pro_off=new JButton();
  • pro_off.setIcon(off_img);
  • con_off=new JButton();
  • con_off.setIcon(off_img);
  • totale = new JPanel();
  • totale.setLayout(new BoxLayout(totale, BoxLayout.Y_AXIS));
  • controler = new JPanel();
  • controler.setLayout(new BoxLayout(controler,BoxLayout.X_AXIS));
  • producteurP = new JPanel();
  • producteurP.setLayout(new BoxLayout(producteurP, BoxLayout.X_AXIS));
  • p_controler = new JPanel();
  • p_controler.setLayout(new BoxLayout(p_controler, BoxLayout.Y_AXIS));
  • p_controler.add(pro_on);
  • p_controler.add(pro_off);
  • producteurP.add(pro);
  • producteurP.add(p_controler);
  • controler.add(producteurP);
  • controler.add(xoff);
  • controler.add(xon);
  • consommateurP = new JPanel();
  • consommateurP.setLayout(new BoxLayout(consommateurP, BoxLayout.X_AXIS));
  • c_controler = new JPanel();
  • c_controler.setLayout(new BoxLayout(c_controler, BoxLayout.Y_AXIS));
  • c_controler.add(con_on);
  • c_controler.add(con_off);
  • consommateurP.add(c_controler);
  • consommateurP.add(con);
  • controler.add(consommateurP);
  • totale.add(controler);
  • compteur=new JButton();
  • image = new ImageIcon[10];
  • for(int i=0;i<10;i++)
  • {
  • image[i] = new ImageIcon(i+".png");
  • System.out.println(image[i]);
  • }
  • compteur.setIcon(image[0]);
  • container=this.getContentPane();
  • buffer = new Bufer(10,compteur,image);
  • producteur = new Producteur (buffer);
  • consommateur = new Consommateur (buffer);
  • container.add(compteur,BorderLayout.NORTH);
  • container.add(controle,BorderLayout.CENTER);
  • container.add(totale,BorderLayout.SOUTH);
  • this.setVisible(true);
  • this.pack();
  • pro_on.addActionListener(this);
  • pro_off.addActionListener(this);
  • con_on.addActionListener(this);
  • con_off.addActionListener(this);
  • xon.addActionListener(this);
  • xoff.addActionListener(this);
  • }
  • public static void main(String args[])
  • {
  • t=new TestBuffer();
  • t.producteur.start();
  • t.consommateur.start();
  • }
  • public void actionPerformed(ActionEvent action)
  • {
  • if(action.getSource().equals(pro_on))
  • {
  • t.producteur=new Producteur (buffer);
  • t.producteur.start();
  • }
  • if(action.getSource().equals(pro_off))
  • {
  • t.producteur.stop();
  • }
  • if(action.getSource().equals(con_on))
  • {
  • t.consommateur=new Consommateur (buffer);
  • t.consommateur.start();
  • }
  • if(action.getSource().equals(con_off))
  • {
  • t.consommateur.stop();
  • }
  • if(action.getSource().equals(xon))
  • {
  • t.producteur=new Producteur (buffer);
  • t.consommateur=new Consommateur (buffer);
  • t.producteur.start();
  • t.consommateur.start();
  • }
  • if(action.getSource().equals(xoff))
  • {
  • t.producteur.stop();
  • t.consommateur.stop();
  • }
  • }
  • }
import javax.swing.*;
import java.awt.event.*;
import java.awt.*;

public class TestBuffer extends JFrame implements ActionListener
{
	public Bufer buffer;
	public Producteur producteur;
	public Consommateur consommateur;
	public Container container;
	public ImageIcon[] image;
	public JButton compteur;
	public JPanel totale;
	public JPanel producteurP;
	public JPanel consommateurP;
	public JPanel controler;
	public JPanel p_controler;
	public JPanel c_controler;
	public JLabel titre;
	
	public ImageIcon pro_img;
	public ImageIcon con_img;
	public JButton pro;
	public JButton con;
	public ImageIcon on_img;
	public ImageIcon off_img;
	public JButton pro_on;
	public JButton con_on;
	public JButton pro_off;
	public JButton con_off;
	
	public ImageIcon xon_img;
	public ImageIcon xoff_img;
	public JButton xon;
	public JButton xoff;
	
	public ImageIcon controle_img;
	public JButton controle;
	
	public static TestBuffer t;
	
	public ImageIcon logo;
		
	public TestBuffer()
	{
		try 
		{
			UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName());
			SwingUtilities.updateComponentTreeUI(this);
		} 
		catch (Exception e) 
		{
			System.out.println("FrmUsers.FrmUsers : impossible d'appliquer le thème du système");
		}
		
		logo = new ImageIcon("logo.png");
		this.setIconImage(logo.getImage());
		this.setTitle("Producteur/Consommateur");
		
		controle_img=new ImageIcon("controle.png");
		controle=new JButton();
		controle.setIcon(controle_img);
		
		pro_img=new ImageIcon("producteur.png");
		con_img=new ImageIcon("consommateur.png");
		pro=new JButton();
		pro.setIcon(pro_img);
		con=new JButton();
		con.setIcon(con_img);
		
		xon_img=new ImageIcon("xon.png");
		xoff_img=new ImageIcon("xoff.png");
		xon=new JButton();
		xon.setIcon(xon_img);
		xoff=new JButton();
		xoff.setIcon(xoff_img);
		
		on_img=new ImageIcon("on.png");
		off_img=new ImageIcon("off.png");
		pro_on=new JButton();
		pro_on.setIcon(on_img);
		con_on=new JButton();
		con_on.setIcon(on_img);
		pro_off=new JButton();
		pro_off.setIcon(off_img);
		con_off=new JButton();
		con_off.setIcon(off_img);
		
		totale = new JPanel();
		totale.setLayout(new BoxLayout(totale, BoxLayout.Y_AXIS));
		
		controler = new JPanel();
		controler.setLayout(new BoxLayout(controler,BoxLayout.X_AXIS));
		producteurP = new JPanel();
		producteurP.setLayout(new BoxLayout(producteurP, BoxLayout.X_AXIS));
		p_controler = new JPanel();
		p_controler.setLayout(new BoxLayout(p_controler, BoxLayout.Y_AXIS));
		p_controler.add(pro_on);
		p_controler.add(pro_off);
		producteurP.add(pro);
		producteurP.add(p_controler);
		controler.add(producteurP);
		
		controler.add(xoff);
		controler.add(xon);
		
		consommateurP = new JPanel();
		consommateurP.setLayout(new BoxLayout(consommateurP, BoxLayout.X_AXIS));
		c_controler = new JPanel();
		c_controler.setLayout(new BoxLayout(c_controler, BoxLayout.Y_AXIS));
		c_controler.add(con_on);
		c_controler.add(con_off);
		consommateurP.add(c_controler);
		consommateurP.add(con);
		controler.add(consommateurP);
		
		totale.add(controler);
	
		compteur=new JButton();
		image = new ImageIcon[10];
		for(int i=0;i<10;i++)
		{
			image[i] = new ImageIcon(i+".png");
			System.out.println(image[i]);
		}
		compteur.setIcon(image[0]);
		container=this.getContentPane();
		buffer = new Bufer(10,compteur,image);
		producteur = new Producteur (buffer);
		consommateur = new Consommateur (buffer);
		container.add(compteur,BorderLayout.NORTH);
		container.add(controle,BorderLayout.CENTER);
		container.add(totale,BorderLayout.SOUTH);
		this.setVisible(true);
		this.pack();
		pro_on.addActionListener(this);
		pro_off.addActionListener(this);
		con_on.addActionListener(this);
		con_off.addActionListener(this);
		xon.addActionListener(this);
		xoff.addActionListener(this);
	}
	
	public static void main(String args[])
	{
		t=new TestBuffer();
		t.producteur.start();
		t.consommateur.start();
	}
	
	public void actionPerformed(ActionEvent action)
	{
		if(action.getSource().equals(pro_on))
		{
			t.producteur=new Producteur (buffer);
			t.producteur.start();
		}
		if(action.getSource().equals(pro_off))
		{
			t.producteur.stop();
		}
		if(action.getSource().equals(con_on))
		{
			t.consommateur=new Consommateur (buffer);
			t.consommateur.start();
		}
		if(action.getSource().equals(con_off))
		{
			t.consommateur.stop();
		}
		if(action.getSource().equals(xon))
		{
			t.producteur=new Producteur (buffer);
			t.consommateur=new Consommateur (buffer);
			t.producteur.start();
			t.consommateur.start();
		}
		if(action.getSource().equals(xoff))
		{
			t.producteur.stop();
			t.consommateur.stop();
		}
	}
}

Conclusion

J’espère que ça vous aide bonne continuation
 

Fichier Zip

Pour les "Membres Club", vous pouvez télécharger directement un fichier contenu dans le zip sans télécharger le zip en entier !

Télécharger le zip

Historique

25 avril 2008 00:47:25 :
J’ai ajouté la source

Commentaires et avis

signaler à un administrateur
Commentaire de Twinuts le 25/04/2008 11:59:46 administrateur CS

Salut,

désolé mais après lecture du code il n'y a rien qui justifie un niveau expert ni même initié...
Je repasse le code en débutant...

signaler à un administrateur
Commentaire de jaquechaf le 25/04/2008 20:07:03

Salut,

Votre commentaire est très intéressante pour moi car elle va me motiver pour travailler et charger d'autres codes de niveau plus élevé

signaler à un administrateur
Commentaire de Chatbour le 28/04/2008 19:48:33

Salut,

voici mes remarques :
- il n'y a pas de commentaire.
- l'interface ne me parait pas très conviviale ni interactive.
j'ai pas saisi le rôle de chacun des composants dans la fenêtre.
- la simulation du classique Producteur/Consommateur n'est pas évidente.
- le fichier pc2.jcw ne sert à rien.

Je te souhaite bonne continuation et bon courage,
Cordialement.

signaler à un administrateur
Commentaire de jaquechaf le 28/04/2008 20:44:41

Merci bien

signaler à un administrateur
Commentaire de Chatbour le 05/05/2008 12:59:42

il y a des fuites mémoires..

signaler à un administrateur
Commentaire de jaquechaf le 05/05/2008 13:58:22

je croix que la gestion de la mémoire en java se fait automatiquement par le GC
je vois pas ou la perte mémoire

signaler à un administrateur
Commentaire de Chatbour le 05/05/2008 15:50:47

c'est vrai, mais tu dois comme même fermer tout flux que tu as ouvert et arrête tout processus ou thread lancé manuellement..

la preuve : lance ton application puis ferme la et essaie de déplacer le dossier de l'application et tu aura un message indiquant que le dossier est utilisé..

signaler à un administrateur
Commentaire de jaquechaf le 14/05/2008 21:31:24

je veux bien que vous notez ce code

Ajouter un commentaire

Discussions en rapport avec ce code source dans le forum

Scanner un port avec JAVA [ par aminos88 ] J'ai un programme Java qui permet de scanner un port d'une machine mais le problème que ce programme n'est fonctionnel que sur la machine locale je ne une classe java qui fait l insertion dans une table oracle 10g [ par lerache ] bonjour tous;je suis entrin de realiser une application avec j2ee pour mon PFE, j ai  deja ecrit la classe qui fait la connection avec la base de donn Ecouteur avec java sous Oracle [ par lion2080 ] Bonjour T.M :J'ai un petit problème consernant Java &amp; Oracle.J'ai un table dans une base de données oracle, je veut lancer un thread java qui fait comparaison de 2 fichiers texte (pb boucle while je pense) [ par tomski ] Bonjour,Jessaye de comparer 2 fichiers texte ligne par ligne.Chaque ligne est decoupee (split(";")) et chaque mot est stocké dans un array.Ensuite je Probleme de parser [ par dess5 ] Bonjour,je souhaite parser un fichier xml sous eclipse et je n'arrive pas à le faire j'ai toujour catte erreur :java.lang.ClassNotFoundException< Liaison iReport / Application java Netbeans de bureau [ par hyunikel ] Salut, S'il vous plait, quelqu'un sait comment lier entre un document iReport et une application java Netbeans de bureau?Je m'explique...*Comment po rendre un projet java executable [ par d3dzied ] svp aider moi comment rendre un programme java executable??? souci actionperformed [ par jeremieT ] Bonjour, j'ai un soucis dans mon projet java: je voudrais mettre le programme en "pause " jusqu'a ce que je clique sur un bouton.(je ne peux pas mettr C to Java [ par helmi2008 ] Bonjour à tous,J'en un programme écrit en c que je dois le transformer en java..Vu que je métrise pas le langage C je trouve beaucoup de difficultés..


Nos sponsors

Sondage...

CalendriCode

Juillet 2009
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
2728293031  

Consulter la suite du CalendriCode

Téléchargements

Logiciels à télécharger sur le même thème :

Comparez les prix Nouvelle version


LG KP501

Entre 9€ et 159€


Photothèque Nouveau !



Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés
Temps d'éxécution de la page : 0,484 sec

Google Coop CodeS-SourceS Google Coop CodeS-SourceS


Certaines images présentes sur le site (notament certains avatars) sont issues des collections IconShock, donc si vous souhaitez utiliser ces icons vous devez les acheter, ne les copiez pas et ne utilisez pas dans vos sites et applications sans les avoir commandé.