Applet file d'attente

Contenu du snippet

Mon premier applet consiste à ajouter des chaines dans une file d'attente (en queue) et de les retirer en tête. Si vous avez des idées d'optimisation, je suis prenneur!!

Source / Exemple :


package source;
import java.applet.*;
import java.awt.*;
import java.awt.event.*;

public class AppletFileAttente extends Applet implements ActionListener, MouseListener {

	public int q = -1;
	public int t = 0;
	public Button btnVider = new Button("Vider");
	public Button btnRentrer = new Button("Ajouter");
	public Button btnRetirer = new Button("Retirer");
	public TextField TAAjouter = new TextField("Chaine à ajouter");
	public TextArea fldAction = new TextArea("Action perfomée : ",100,50, TextArea.SCROLLBARS_VERTICAL_ONLY);
	public GridLayout GLGestion = new GridLayout(2,1,10,10);
	public GridLayout GLGestion2 = new GridLayout(2,1,10,10);
	public GridLayout GLGestion3 = new GridLayout(1,2,10,10);
	public GridLayout GLGestion4 = new GridLayout(3,3,10,10);
	public GridLayout GLAffichage = new GridLayout(10,1,10,10);
	public GridLayout GLGestion5 = new GridLayout(3,1,10,10);
	public Panel pnlGestion = new Panel(GLGestion);
	public Panel pnlGestion2 = new Panel(GLGestion2);
	public Panel pnlGestion3 = new Panel(GLGestion3);
	public Panel pnlGestion4 = new Panel(GLGestion4);
	public Panel pnlGestion5 = new Panel(GLGestion5);
	public Panel pnlAffichage = new Panel(GLAffichage);
	public TextField fldCase0 = new TextField(null);
	public TextField fldCase1 = new TextField(null);
	public TextField fldCase2 = new TextField(null);
	public TextField fldCase3 = new TextField(null);
	public TextField fldCase4 = new TextField(null);
	public TextField fldCase5 = new TextField(null);
	public TextField fldCase6 = new TextField(null);
	public TextField fldCase7 = new TextField(null);
	public TextField fldCase8 = new TextField(null);
	public TextField fldCase9 = new TextField(null);
	public Label lblvide = new Label(null);
	
	public void init()
	{
		setFont(new Font("Ecrire GRAS", Font.PLAIN, 10));
		setLayout(new GridLayout(1,4,10,10));
		pnlAffichage.add(fldCase0);
		fldCase0.setEditable(false);
		fldCase0.addMouseListener(this);
		pnlAffichage.add(fldCase1);
		fldCase1.setEditable(false);
		pnlAffichage.add(fldCase2);
		fldCase2.setEditable(false);
		pnlAffichage.add(fldCase3);
		fldCase3.setEditable(false);
		pnlAffichage.add(fldCase4);
		fldCase4.setEditable(false);
		pnlAffichage.add(fldCase5);
		fldCase5.setEditable(false);
		pnlAffichage.add(fldCase6);
		fldCase6.setEditable(false);
		pnlAffichage.add(fldCase7);
		fldCase7.setEditable(false);
		pnlAffichage.add(fldCase8);
		fldCase8.setEditable(false);
		pnlAffichage.add(fldCase9);
		fldCase9.setEditable(false);
			
		add(pnlGestion);
		pnlGestion2.setLayout(GLGestion2);
		pnlGestion.add(pnlGestion2);
		pnlGestion3.setLayout(GLGestion3);
		pnlGestion2.add(pnlGestion3);
		pnlGestion2.add(fldAction);
		fldAction.setEditable(false);
		fldAction.setBackground(Color.white);
		pnlGestion3.add(pnlGestion5);
		pnlGestion5.add(lblvide);
		pnlGestion5.add(TAAjouter);
		TAAjouter.setEditable(true);
		TAAjouter.addMouseListener(this);
		pnlGestion4.setLayout(GLGestion4);
		pnlGestion3.add(pnlGestion4);
		pnlGestion4.add(btnRentrer);
		btnRentrer.addActionListener(this);
		pnlGestion4.add(btnVider);
		btnVider.addActionListener(this);
		pnlGestion4.add(btnRetirer);
		btnRetirer.addActionListener(this);
		
		add(pnlAffichage);
	}
	
	public void actionPerformed(ActionEvent action) 
	{
		if(action.getSource()==btnRentrer)
		{
			if(q==-1) {
				fldCase0.setText(TAAjouter.getText());
				q++;
				fldAction.setText(fldAction.getText()+"\n\n La chaine : "+TAAjouter.getText()+" a été ajoutée à  la case "+q+" car la file était vide");
			}
			else if(q==0) {
				fldCase1.setText(TAAjouter.getText());
				q++;
				fldAction.setText(fldAction.getText()+"\n\n La chaine : "+TAAjouter.getText()+" a été  ajoutée à  la case "+q+" car la vide contenait déjà "+q+" élèments");
			}
			else if(q==1) {
				fldCase2.setText(TAAjouter.getText());
				q++;
				fldAction.setText(fldAction.getText()+"\n\n La chaine : "+TAAjouter.getText()+" a été  ajoutée à  la case "+q+" car la vide contenait déjà "+q+" élèments");
			}
			else if(q==2) {
				fldCase3.setText(TAAjouter.getText());
				q++;
				fldAction.setText(fldAction.getText()+"\n\n La chaine : "+TAAjouter.getText()+" a été  ajoutée à  la case "+q+" car la vide contenait déjà "+q+" élèments");
			}
			else if(q==3) {
				fldCase4.setText(TAAjouter.getText());
				q++;
				fldAction.setText(fldAction.getText()+"\n\n La chaine : "+TAAjouter.getText()+" a été  ajoutée à  la case "+q+" car la vide contenait déjà "+q+" élèments");
			}
			else if(q==4) {
				fldCase5.setText(TAAjouter.getText());
				q++;
				fldAction.setText(fldAction.getText()+"\n\n La chaine : "+TAAjouter.getText()+" a été  ajoutée à  la case "+q+" car la vide contenait déjà "+q+" élèments");
			}
			else if(q==5) {
				fldCase6.setText(TAAjouter.getText());
				q++;
				fldAction.setText(fldAction.getText()+"\n\n La chaine : "+TAAjouter.getText()+" a été  ajoutée à  la case "+q+" car la vide contenait déjà "+q+" élèments");
			}
			else if(q==6) {
				fldCase7.setText(TAAjouter.getText());
				q++;
				fldAction.setText(fldAction.getText()+"\n\n La chaine : "+TAAjouter.getText()+" a été  ajoutée à  la case "+q+" car la vide contenait déjà "+q+" élèments");
			}
			else if(q==7) {
				fldCase8.setText(TAAjouter.getText());
				q++;
				fldAction.setText(fldAction.getText()+"\n\n La chaine : "+TAAjouter.getText()+" a été  ajoutée à  la case "+q+" car la vide contenait déjà "+q+" élèments");
			}
			else if(q==8) {
				fldCase9.setText(TAAjouter.getText());
				q++;
				fldAction.setText(fldAction.getText()+"\n\n La chaine : "+TAAjouter.getText()+" a été  ajoutée à  la case "+q+" car la vide contenait déjà "+q+" élèments");
			}
			else if(q>8)
			{
				fldAction.setText(fldAction.getText()+"\n\n Plus de place");
			}	
		}
		
		if(action.getSource()==btnRetirer)
		{
			retirer();
		}
		
		if(action.getSource()==btnVider)
		{
			vider();			
		}
	}
	
	public void mouseClicked(MouseEvent mouse) 
	{
		if(mouse.getSource()==TAAjouter)
			TAAjouter.setText(null);
		if(mouse.getSource()==fldCase0)
			retirer();
	}

	public void mouseEntered(MouseEvent mouse) {	}
	public void mouseExited(MouseEvent mouse) {}
	public void mousePressed(MouseEvent mouse) {	}
	public void mouseReleased(MouseEvent mouse) {}
	
	public void retirer()
	{	
		if(q!=-1)
		{
			fldAction.setText(fldAction.getText()+"\n\n Chaine retirée : "+fldCase0.getText());
			fldCase0.setText(fldCase1.getText());
			fldCase1.setText(fldCase2.getText());
			fldCase2.setText(fldCase3.getText());
			fldCase3.setText(fldCase4.getText());
			fldCase4.setText(fldCase5.getText());
			fldCase5.setText(fldCase6.getText());
			fldCase6.setText(fldCase7.getText());
			fldCase7.setText(fldCase8.getText());
			fldCase8.setText(fldCase9.getText());
			fldCase9.setText(null);
			q--;
		}
		else if(q==-1)
		{
			fldAction.setText(fldAction.getText()+"\n\n File vide");
		}
	}
	
	public void vider()
	{
		if(q!=-1)
		{
			fldCase0.setText(null);
			fldCase1.setText(null);
			fldCase2.setText(null);
			fldCase3.setText(null);
			fldCase4.setText(null);
			fldCase5.setText(null);
			fldCase6.setText(null);
			fldCase7.setText(null);
			fldCase8.setText(null);
			fldCase9.setText(null);
			fldAction.setText(fldAction.getText()+"\n\n File vide");
			q=-1;
		}
		else if(q==-1)
		{
			fldAction.setText(fldAction.getText()+"\n\n File déjà vide");
		}
	}
}

A voir également

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.