Calculatrice au boutons décoré

Soyez le premier à donner votre avis sur cette source.

Vue 11 139 fois - Téléchargée 2 988 fois

Description

cette petite application, regorge beaucoup des fonctionnalité de calculatrice normal mais elle ajoute des boutons dégradé et un écran dégradé...

Source / Exemple :


[code]
/*

  • c'est la classe principale
  • /
package calp; /** *
  • @author webdev
  • /
public class Calp { /**
  • @param args the command line arguments
  • /
public static void main(String[] args) { // TODO code application logic here MyFen myWin = new MyFen(); myWin.requestFocus(); } } /////////////////// // DEUXIEMME /*
  • To change this template, choose Tools | Templates
  • and open the template in the editor.
  • /
package calp; import java.awt.*; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.awt.event.KeyEvent; import java.awt.event.KeyListener; import java.io.File; import java.io.IOException; import javax.imageio.ImageIO; import javax.swing.*; /** *
  • @author webdev
  • /
public class MyFen extends JFrame{ private JPanel contennaire = new JPanel(); private JLabel ecran = new JLabel(); private JLabel[] opEcran = new JLabel[3]; private Dimension dim = new Dimension(52,33); private Dimension dim2 = new Dimension(112,71); private Dimension dim3 = new Dimension(109,33); private Double chiffre1 = new Double(0); private Double memo = new Double(0); private Boolean clicOperateur = true, update = false; private String operateur = ""; String[] tab_String = {"MC", "MR", "MS", "M+", "M-", "&#8592;", "CE", "C", "7", "8", "9", "4", "5", "6", "1", "2", "3", "0", ".", "+", "-", "*", "/", "%", "±", "="}; //JCoolBouton[] tab_Bouton = new JCoolBouton[tab_String.length]; JButton[] tab_Bouton = new JButton[tab_String.length]; public MyFen(){ this.setSize(316, 360); this.setTitle("Palmoc"); this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); this.setLocationRelativeTo(null); this.setResizable(false); this.addKeyListener(new KeyPadListener()); Objets(); this.setContentPane(contennaire); this.setVisible(true); } private void Objets(){ JPanel operateur = new JPanel(); operateur.setPreferredSize(new Dimension(116, 230)); JPanel chiffre = new JPanel(); chiffre.setPreferredSize(new Dimension(174, 230)); EcranPannel panEcran = new EcranPannel(""); panEcran.setPreferredSize(new Dimension(294, 68)); for(int i=0; i<3; i++){ //AFFICHEUR DES OPERATION AU DESSU DE L'ECRAN DE CALCULE Font Police1 = new Font("Consolas", Font.BOLD, 12); opEcran[i] = new JLabel(""); opEcran[i].setFont(Police1); opEcran[i].setHorizontalAlignment(JLabel.CENTER); opEcran[i].setPreferredSize(new Dimension(80,16)); //opEcran[i].setBorder(BorderFactory.createLineBorder(Color.BLACK)); panEcran.add(opEcran[i]); } Font Police = new Font("LCD", Font.BOLD, 28); //28 ecran = new JLabel("0"); ecran.setFont(Police); ecran.setHorizontalAlignment(JLabel.RIGHT); ecran.setPreferredSize(new Dimension(280,38)); for(int i=0; i < tab_String.length; i++){ tab_Bouton[i] = new JCoolBouton(tab_String[i]); tab_Bouton[i].setPreferredSize(dim); switch(i){ case 0: tab_Bouton[i].addActionListener(new MemoClearListener()); tab_Bouton[i].addKeyListener(new KeyPadListener()); chiffre.add(tab_Bouton[i]); break; case 1: tab_Bouton[i].addActionListener(new MemoReadListener()); tab_Bouton[i].addKeyListener(new KeyPadListener()); chiffre.add(tab_Bouton[i]); break; case 2: tab_Bouton[i].addActionListener(new MemoSaveListener()); tab_Bouton[i].addKeyListener(new KeyPadListener()); chiffre.add(tab_Bouton[i]); break; case 3: tab_Bouton[i].addActionListener(new MemoPlusListener()); tab_Bouton[i].addKeyListener(new KeyPadListener()); operateur.add(tab_Bouton[i]); break; case 4: tab_Bouton[i].addActionListener(new MemoMoinsListener()); tab_Bouton[i].addKeyListener(new KeyPadListener()); operateur.add(tab_Bouton[i]); break; case 5: tab_Bouton[i].addActionListener(new BackListener()); tab_Bouton[i].addKeyListener(new KeyPadListener()); chiffre.add(tab_Bouton[i]); break; case 6: tab_Bouton[i].addActionListener(new CEResetListener()); tab_Bouton[i].addKeyListener(new KeyPadListener()); chiffre.add(tab_Bouton[i]); break; case 7: tab_Bouton[i].addActionListener(new ResetListener()); tab_Bouton[i].addKeyListener(new KeyPadListener()); chiffre.add(tab_Bouton[i]); break; case 19: tab_Bouton[i].addActionListener(new PlusListener()); tab_Bouton[i].addKeyListener(new KeyPadListener()); operateur.add(tab_Bouton[i]); break; case 20: tab_Bouton[i].addActionListener(new MoinsListener()); tab_Bouton[i].addKeyListener(new KeyPadListener()); operateur.add(tab_Bouton[i]); break; case 21: tab_Bouton[i].addActionListener(new MultiListener()); tab_Bouton[i].addKeyListener(new KeyPadListener()); operateur.add(tab_Bouton[i]); break; case 22: tab_Bouton[i].addActionListener(new DivListener()); tab_Bouton[i].addKeyListener(new KeyPadListener()); operateur.add(tab_Bouton[i]); break; case 23: tab_Bouton[i].addActionListener(new PourcentListener()); tab_Bouton[i].addKeyListener(new KeyPadListener()); operateur.add(tab_Bouton[i]); break; case 24: tab_Bouton[i].addActionListener(new PlusMoinstListener()); tab_Bouton[i].addKeyListener(new KeyPadListener()); operateur.add(tab_Bouton[i]); break; case 25: tab_Bouton[i].addActionListener(new EgalListener()); tab_Bouton[i].addKeyListener(new KeyPadListener()); tab_Bouton[i].setPreferredSize(dim2); operateur.add(tab_Bouton[i]); break; default: if(i==17) tab_Bouton[i].setPreferredSize(dim3); chiffre.add(tab_Bouton[i]); tab_Bouton[i].addActionListener(new ChiffreListener()); tab_Bouton[i].addKeyListener(new KeyPadListener()); break; } } //chiffre.setBorder(BorderFactory.createLineBorder(Color.BLACK)); //operateur.setBorder(BorderFactory.createLineBorder(Color.BLACK)); //ecran.setBorder(BorderFactory.createLineBorder(Color.BLACK)); //mybouton.setPreferredSize(dim4); panEcran.add(ecran); contennaire.setBackground(Color.white); contennaire.add(panEcran, BorderLayout.NORTH); chiffre.setBackground(Color.white); contennaire.add(chiffre, BorderLayout.CENTER); operateur.setBackground(Color.white); contennaire.add(operateur, BorderLayout.SOUTH); } /*
  • //////////////////////////////////////////////////////////////////////////////////////
  • //////////////////////////////////////////////////////////////////////////////////////
  • //////////////////////////// LES METHODES QUI CALCULE /////////////////////////////
  • //////////////////////////////////////////////////////////////////////////////////////
  • //////////////////////////////////////////////////////////////////////////////////////
  • /
private void Calcul(){ if(operateur.equals("+")){ chiffre1 = chiffre1 + Double.valueOf(ecran.getText()).doubleValue(); ecran.setText(String.valueOf(chiffre1)); DecimVerif(); // CETTE FONCTION VERIFIE ET SUPPRIME LE "." SI CA PLUSIEUR FOIS } if(operateur.equals("-")){ chiffre1 = chiffre1 - Double.valueOf(ecran.getText()).doubleValue(); ecran.setText(String.valueOf(chiffre1)); DecimVerif(); // CETTE FONCTION VERIFIE ET SUPPRIME LE "." SI CA PLUSIEUR FOIS } if(operateur.equals("*")){ chiffre1 = chiffre1 * Double.valueOf(ecran.getText()).doubleValue(); ecran.setText(String.valueOf(chiffre1)); DecimVerif(); // CETTE FONCTION VERIFIE ET SUPPRIME LE "." SI CA PLUSIEUR FOIS } if(operateur.equals("/")){ try{ chiffre1 = chiffre1 / Double.valueOf(ecran.getText()).doubleValue(); ecran.setText(String.valueOf(chiffre1)); }catch(ArithmeticException e){ ecran.setText("0"); } DecimVerif(); // CETTE FONCTION VERIFIE ET SUPPRIME LE "." SI CA PLUSIEUR FOIS } } private void DecimVerif(){ String unEcran1, unEcran2, unEcran3 = new String(); try{ unEcran1 = String.valueOf(ecran.getText()); unEcran2 = unEcran1.substring(0, unEcran1.indexOf(".")); unEcran3 = unEcran1.substring((unEcran1.indexOf(".")+1), unEcran1.length()); if(unEcran3.length() < 2){ if(String.valueOf(unEcran3).equals("0")){ ecran.setText(unEcran2); } } }catch(StringIndexOutOfBoundsException e){ ecran.setText("0"); } } /*
  • //////////////////////////////////////////////////////////////////////////////////////
  • //////////////////////////////////////////////////////////////////////////////////////
  • ////////////// LES METHODES QUI ECOUTES LES ACTIONS SUR LES BOUTONS ///////////////
  • //////////////////////////////////////////////////////////////////////////////////////
  • //////////////////////////////////////////////////////////////////////////////////////
  • /
class ChiffreListener implements ActionListener { @Override public void actionPerformed(ActionEvent e) { if((ecran.getText().length()) < 15){ String str = ((JButton)e.getSource()).getText(); // RECUPERATION DES ETIQUETTE DES BOUTONS if(update){ update = false; if(str.equals(".")){ str = ecran.getText() + str; ecran.setText(str); }else{ ecran.setText(str); } }else{ if(!ecran.getText().equals("0")){ if(str.equals(".")){ if(Integer.valueOf(ecran.getText().indexOf(".")).equals(-1)){ str = ecran.getText() + str; ecran.setText(str); } }else{ str = ecran.getText() + str; ecran.setText(str); } }else{ if(str.equals(".")){ if(Integer.valueOf(ecran.getText().indexOf(".")).equals(-1)){ str = ecran.getText() + str; ecran.setText(str); } }else{ ecran.setText(str); } } } } } } class EgalListener implements ActionListener { @Override public void actionPerformed(ActionEvent e) { Calcul(); chiffre1 = 0.0; update = true; opEcran[0].setText(""); } } class PlusListener implements ActionListener { @Override public void actionPerformed(ActionEvent e) { if(chiffre1 == 0){ chiffre1 += Double.valueOf(ecran.getText()); }else if(chiffre1 != 0 && Integer.valueOf(ecran.getText()) >= 0){ Calcul(); }else{ Calcul(); } operateur = "+"; opEcran[0].setText(operateur); clicOperateur = true; update = true; } } class MoinsListener implements ActionListener { @Override public void actionPerformed(ActionEvent e) { if(chiffre1 == 0){ chiffre1 += Double.valueOf(ecran.getText()); }else if(chiffre1 != 0 && Integer.valueOf(ecran.getText()) >= 0){ Calcul(); }else{ Calcul(); } operateur = "-"; opEcran[0].setText(operateur); update = true; } } class MultiListener implements ActionListener { @Override public void actionPerformed(ActionEvent e) { if(chiffre1 == 0){ chiffre1 += Double.valueOf(ecran.getText()); }else if(chiffre1 != 0 && Integer.valueOf(ecran.getText()) >= 0){ Calcul(); }else{ Calcul(); } operateur = "*"; opEcran[0].setText(operateur); update = true; } } class DivListener implements ActionListener { @Override public void actionPerformed(ActionEvent e) { if(chiffre1 == 0){ chiffre1 += Double.valueOf(ecran.getText()); }else if(chiffre1 != 0 && Integer.valueOf(ecran.getText()) >= 0){ Calcul(); }else{ Calcul(); } operateur = "/"; opEcran[0].setText(operateur); update = true; } } private class CEResetListener implements ActionListener { @Override public void actionPerformed(ActionEvent e) { ecran.setText("0"); } } class ResetListener implements ActionListener { @Override public void actionPerformed(ActionEvent e) { update = true; chiffre1 = 0.0; operateur = ""; ecran.setText("0"); opEcran[0].setText(operateur); } } class BackListener implements ActionListener { @Override public void actionPerformed(ActionEvent e) { String unEcran = ""; chiffre1 = 0.0; for(int i=0; i <ecran.getText().length(); i++){ unEcran = String.valueOf(ecran.getText().substring(0, i)); if(Integer.valueOf(i).equals(0)) unEcran = String.valueOf("0"); } ecran.setText(unEcran); update = false; operateur = ""; } } class MemoClearListener implements ActionListener { @Override public void actionPerformed(ActionEvent e) { memo = 0.0; opEcran[1].setText(""); } } class MemoReadListener implements ActionListener { @Override public void actionPerformed(ActionEvent e) { ecran.setText(String.valueOf(memo)); update = true; Calcul(); } } class MemoSaveListener implements ActionListener { @Override public void actionPerformed(ActionEvent e) { if(!ecran.getText().equals("0")) { opEcran[1].setText("M"); memo = Double.valueOf(ecran.getText()); } } } class MemoPlusListener implements ActionListener { @Override public void actionPerformed(ActionEvent e) { if(!ecran.getText().equals("0")) { opEcran[1].setText("M"); memo = memo + Double.valueOf(ecran.getText()); } } } class MemoMoinsListener implements ActionListener { @Override public void actionPerformed(ActionEvent e) { if(!ecran.getText().equals("0")) { opEcran[1].setText("M"); memo = memo - Double.valueOf(ecran.getText()); } } } class PourcentListener implements ActionListener { @Override public void actionPerformed(ActionEvent e) { int compteur = 0; compteur = ecran.getText().length(); ecran.setText(String.valueOf(compteur)); } } class PlusMoinstListener implements ActionListener { @Override public void actionPerformed(ActionEvent e) { if((Double.valueOf(ecran.getText()))<0){ String recupe = ecran.getText().substring(1, ecran.getText().length()); ecran.setText(recupe); }else{ ecran.setText("-"+ecran.getText()); } } } private class KeyPadListener implements KeyListener { // INTERFACE QUI ECOUTE LE CLAVIER @Override public void keyTyped(KeyEvent e) { } @Override public void keyPressed(KeyEvent e) { //char myChar = (char)KeyPadCode; // CONVERSION DES CHIFFRE EN LETTRE //String str = String.valueOf(myChar); int KeyPadLocation = e.getKeyLocation(); int KeyPadCode = e.getKeyCode(); String str = String.valueOf(e.getKeyChar()); boolean interup = false; str=str.replaceAll(",", "."); for(int k = 0; k < 10; k++){ // BOUCLE QUI VERIFI SI LES CHIFFRES OU UN POINT (.) SONT SAISIE AU CLAVIER if(String.valueOf(k).equals(str)){ interup = true; }else if(str.equals(".")){ interup = true; } } ///// TESTE SI UN OPERATEUR ARITHMETIQUE EST APPUYER if(KeyPadCode==61 && str.equals("+") || str.equals("=") || KeyPadCode==54 && str.equals("-")){ interup = true; }else if(KeyPadCode==151 && str.equals("*") || KeyPadCode==27 || KeyPadCode==10 || KeyPadCode==513 && str.equals("/")){ interup = true; }else if(KeyPadCode==8 || KeyPadCode==106 || KeyPadCode==107 || KeyPadCode==109 || KeyPadCode==111){ interup = true; } if(interup == true){ switch(KeyPadLocation){ case 1: if(KeyPadCode >47 && KeyPadCode<58 && !str.equals("-") || KeyPadCode==44 || KeyPadCode==59){ if((ecran.getText().length()) < 15){ if(update){ update = false; if(str.equals(".")){ str = ecran.getText() + str; ecran.setText(str); }else{ ecran.setText(str); } }else{ if(!ecran.getText().equals("0")){ if(str.equals(".")){ if(Integer.valueOf(ecran.getText().indexOf(".")).equals(-1)){ str = ecran.getText() + str; ecran.setText(str); } }else{ str = ecran.getText() + str; ecran.setText(str); } }else{ if(str.equals(".")){ if(Integer.valueOf(ecran.getText().indexOf(".")).equals(-1)){ str = ecran.getText() + str; ecran.setText(str); } }else{ ecran.setText(str); } } } } }else if(KeyPadCode==54 && str.equals("-")){ // SI C LA TOUCHE (-) if(chiffre1 == 0){ chiffre1 += Double.valueOf(ecran.getText()); }else if(chiffre1 != 0 && Integer.valueOf(ecran.getText()) >= 0){ Calcul(); }else{ Calcul(); } operateur = "-"; opEcran[0].setText(operateur); update = true; }else if(KeyPadCode==61 && str.equals("+")){ // SI C LA TOUCHE (+) if(chiffre1 == 0){ chiffre1 += Double.valueOf(ecran.getText()); }else if(chiffre1 != 0 && Integer.valueOf(ecran.getText()) >= 0){ Calcul(); }else{ Calcul(); } operateur = "+"; opEcran[0].setText(operateur); update = true; }else if(KeyPadCode==61 && str.equals("=")){ // SI C LA TOUCHE (=) Calcul(); update = true; chiffre1 = 0.0; opEcran[0].setText(""); }else if(KeyPadCode==151 && str.equals("*")){ // SI C LA TOUCHE (*) if(chiffre1 == 0){ chiffre1 += Double.valueOf(ecran.getText()); }else if(chiffre1 != 0 && Integer.valueOf(ecran.getText()) >= 0){ Calcul(); }else{ Calcul(); } operateur = "*"; opEcran[0].setText(operateur); clicOperateur = true; update = true; }else if(KeyPadCode==27){ //// SI C LA TOUCHE ECHAP update = true; chiffre1 = 0.0; operateur = ""; ecran.setText("0"); opEcran[0].setText(operateur); }else if(KeyPadCode==10){ // SI C UNE AUTRES TOUCHE (=) Calcul(); chiffre1 = 0.0; update = true; opEcran[0].setText(""); }else if(KeyPadCode==513 && str.equals("/")){ // SI C LA TOUCHE (/) if(chiffre1 == 0){ chiffre1 += Double.valueOf(ecran.getText()); }else if(chiffre1 != 0 && Integer.valueOf(ecran.getText()) >= 0){ Calcul(); }else{ Calcul(); } operateur = "/"; opEcran[0].setText(operateur); update = true; }else if(KeyPadCode==8){ // SI C LA TOUCHE BACKSPACE String unEcran = ""; chiffre1 = 0.0; for(int i=0; i <ecran.getText().length(); i++){ unEcran = String.valueOf(ecran.getText().substring(0, i)); if(Integer.valueOf(i).equals(0)) unEcran = String.valueOf("0"); } ecran.setText(unEcran); update = false; operateur = ""; } break; case 4: if(KeyPadCode >=96 && KeyPadCode<=105 || KeyPadCode == 110){ if((ecran.getText().length()) < 15){ if(update){ update = false; if(str.equals(".")){ str = ecran.getText() + str; ecran.setText(str); }else{ ecran.setText(str); } }else{ if(!ecran.getText().equals("0")){ if(str.equals(".")){ if(Integer.valueOf(ecran.getText().indexOf(".")).equals(-1)){ str = ecran.getText() + str; ecran.setText(str); } }else{ str = ecran.getText() + str; ecran.setText(str); } }else{ if(str.equals(".")){ if(Integer.valueOf(ecran.getText().indexOf(".")).equals(-1)){ str = ecran.getText() + str; ecran.setText(str); } }else{ ecran.setText(str); } } } } }else if(KeyPadCode==107 && str.equals("+")){ // SI C LA TOUCHE (+) if(chiffre1 == 0){ chiffre1 += Double.valueOf(ecran.getText()); }else if(chiffre1 != 0 && Integer.valueOf(ecran.getText()) >= 0){ Calcul(); }else{ Calcul(); } operateur = "+"; opEcran[0].setText(operateur); update = true; }else if(KeyPadCode==109 && str.equals("-")){ // SI C LA TOUCHE (-) if(chiffre1 == 0){ chiffre1 += Double.valueOf(ecran.getText()); }else if(chiffre1 != 0 && Integer.valueOf(ecran.getText()) >= 0){ Calcul(); }else{ Calcul(); } operateur = "-"; opEcran[0].setText(operateur); update = true; }else if(KeyPadCode==106 && str.equals("*")){ // SI C LA TOUCHE (*) if(chiffre1 == 0){ chiffre1 += Double.valueOf(ecran.getText()); }else if(chiffre1 != 0 && Integer.valueOf(ecran.getText()) >= 0){ Calcul(); }else{ Calcul(); } operateur = "*"; opEcran[0].setText(operateur); clicOperateur = true; update = true; }else if(KeyPadCode==111 && str.equals("/")){ // SI C LA TOUCHE (/) if(chiffre1 == 0){ chiffre1 += Double.valueOf(ecran.getText()); }else if(chiffre1 != 0 && Integer.valueOf(ecran.getText()) >= 0){ Calcul(); }else{ Calcul(); } operateur = "/"; opEcran[0].setText(operateur); update = true; }else if(KeyPadCode==10){ // SI C UNE AUTRES TOUCHE (=) Calcul(); chiffre1 = 0.0; update = true; opEcran[0].setText(""); } break; }/*else{ }*/ } } @Override public void keyReleased(KeyEvent e) { } } } /code

Codes Sources

A voir également

Ajouter un commentaire Commentaire
Messages postés
10
Date d'inscription
jeudi 12 avril 2007
Statut
Membre
Dernière intervention
25 septembre 2012

Cette application est magnefique. Je donne une note de 18/20

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.

Du même auteur (alvinemambele)