Calculatrice basic 8 touches

Description

Bon voici une autre caltos comme y en a plein sur code source... Mais j'ai voulu mettre celle ci car elle est un peu particulière. Voila elle comporte 8 touches : 1 2 3 4 5 + - quitter. Les différentes opérations possibles sont : 1+1 11+ +11 et puis il y des écrasements pris en compte par exemple si on tape +++-11 cela va faire 1-1 et ainsi de suite pour les nombres aussi.
J'ai aussi esseyé d'utiliser le composant graph swing ! voila c mon premier programme en java alors soyez indulgent ! ;) merci.

Source / Exemple :

/*Programe fait par nonos septembre2003 */


//les différentes librairies que l'on va utiliser pour le prog

import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
import java.lang.*;//librairie pour la fonction Integer.parseInt()



		/*|-->  CLASSE ECOUTEUR BOUTON  <--|*/

class EcouteurButton implements ActionListener
{  
	private SwingExemple mafenetre;
  
  EcouteurButton(SwingExemple fenetre) 
  {
    super();
    this.mafenetre = fenetre;    
  }
  
  
  public void actionPerformed(ActionEvent e)
  {
   	int nbre = 0;
   	String operateur = "";
   	String affichage = "";
  	
  	if (e.getActionCommand() != "+" && e.getActionCommand() != "-")
  	{
   		nbre = Integer.parseInt(e.getActionCommand());
   		affichage = e.getActionCommand();
  	}
   	else
   		operateur = e.getActionCommand();
   		
   	if (operateur != "")
   		affichage = operateur;
   	
   	mafenetre.clique(nbre,operateur,affichage);//envoi des variables dans la fonction clique()   	
  }
}

		/*|-->  CLASSE ECOUTEUR FENETRE  <--|*/

class EcouteurFenetre extends WindowAdapter //qd on quitte la fenetre
{
 public void windowClosing(WindowEvent e)
 {  	
      	JOptionPane.showMessageDialog(null,"@ la prochaine ;) et reviens vite...");
      	System.exit(0);          
 }
}



		/*|-->  CLASSE SWINGEXEMPLE <--|*/

class SwingExemple
{
	private JLabel label1 = new JLabel(" Cliquer sur");
	private JLabel label2 = new JLabel("une touche.");
	private int tablo[] = {0,0};// tablo qui va recevoir les valeur des touches
	private String operateur_final = "";
	private int resultat = 0;
	
	
	
	public void clique(int nbre, String operateur, String affichage)//ici qd on clique
 	{ 	 	
 	 	
 		label2.setText("");label1.setText("");//initialisation de l'écran de la fenêtre
 		if (affichage == "+" || affichage == "-")
 			label2.setText("           " + affichage);//si c un opérateur on affiche à droite
 		else
 			label1.setText("           " + affichage);//sinon on affiche à gauche (chiffre!)
 		
 		
 		if (operateur != "") {operateur_final = operateur; }//si on retape un opérateur on écrase l'ancien
 		else
 		{ 			
 			if ((tablo[0] != 0) && (tablo[1] != 0)) {tablo[0]=tablo[1];tablo[1]=nbre;}
 			if ((tablo[0] != 0) && (tablo[1] == 0)) {tablo[1]=nbre;}
 			if ((tablo[0] == 0) && (tablo[1] == 0)) {tablo[0]=nbre;}
 		}	
    	
 	 	if ((operateur_final != "") && (tablo[0] != 0) && (tablo[1] != 0))//qd toutes les variables sont remplies on effectue le calcul
 	 	{
 	 		if (operateur_final == "+")
 	 			resultat = tablo[0] + tablo[1];
 	 		else
 	 			resultat = tablo[0] - tablo[1];
 	 			
 	 		label1.setText("  Résultat :");
 	 		label2.setText("    " + String.valueOf(tablo[0]) + operateur_final + String.valueOf(tablo[1]) + " = " + String.valueOf(resultat));
 	 		tablo[0]=0;tablo[1]=0;operateur_final="";resultat = 0;//réinitialisation des variables
 	 	} 		 	 	
 	 }

	
	
	public Component createComponents()	//la fenetre
 	{
 		JButton button1 = new JButton ("1");//déclaration d'une variable bouton
 		JButton button2 = new JButton ("2");
 		JButton button3 = new JButton ("3");
 		JButton button4 = new JButton ("4");
 		JButton button5 = new JButton ("5");
 		JButton button6 = new JButton ("+");
 		JButton button7 = new JButton ("-");
 		JButton button8 = new JButton ("QUITTER");
 		
 		button1.addActionListener(new EcouteurButton(this));//ajout des ecouteurs sur chaque bouton créé
 		button2.addActionListener(new EcouteurButton(this));
 		button3.addActionListener(new EcouteurButton(this));
 		button4.addActionListener(new EcouteurButton(this));
 		button5.addActionListener(new EcouteurButton(this));
 		button6.addActionListener(new EcouteurButton(this)); 		
 		button7.addActionListener(new EcouteurButton(this)); 		
 		button8.addActionListener(new EcouteurButton(this));
 		
 		button6.setForeground(Color.blue);
 		button7.setForeground(Color.blue);
 		button8.setForeground(Color.red);
 		
 		label1.setForeground(Color.magenta);
 		label2.setForeground(Color.magenta);

 		 		
 		JPanel pane = new JPanel();
 		
 		pane.setLayout(new GridLayout(5,2));
 	  	
 		pane.add(label1);//on ajoute deux label dans la frame pour pouvoir avoir de la place pour le résultat
 		pane.add(label2);
 		
 		pane.add(button1);//ajout des différents bouttons de la frame (1 -> 5, + et -)
 		pane.add(button2);
 		pane.add(button3);
 		pane.add(button4);
 		pane.add(button5);
 		pane.add(button6);
 		pane.add(button7);
 		pane.add(button8); 		
 		
 		return pane;
 		
 	}
	
	
 	
 	
		/*|-->  PROGRAMME PRINCIPAL  <--|*/
	
	public static void main(String[] args)
	{
		JFrame frame1 = new JFrame("Caltos !");
		SwingExemple app = new SwingExemple();
		frame1.addWindowListener(new EcouteurFenetre());
		
		frame1.pack();
		frame1.setSize(150, 150);
		
				
		Component contents = app.createComponents();
		frame1.getContentPane().add(contents, BorderLayout.CENTER);
		
		Dimension screen = Toolkit.getDefaultToolkit().getScreenSize();  //on va prendre la résolution de l'écran et on va mettre la frame1 o milieu de l'écran
 	  	frame1.setLocation((screen.width - frame1.getSize().width)/2,(screen.height - frame1.getSize().height)/2);
		frame1.setVisible(true);
	}
}

Conclusion :

voila c tout @++

Codes Sources

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.