Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1218 connectés 

  FORUM HardWare.fr
  Programmation
  Java

  [JAVA] Convertisseur Euro-Franc donné la communauté open source ;-)

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[JAVA] Convertisseur Euro-Franc donné la communauté open source ;-)

n°145195
benou
Posté le 27-05-2002 à 00:26:54  profilanswer
 

voila, je suis en train de chercher un appart et ca me fesait chier de tout le temps taper le prix du loyer "* 6.55957" dans la calculatrice de windows pour avoir le prix en franc alors je me suis fait mon propre convertisseur.
 
En réalité c'est parce qu'en ce moment je prend mon pied à découvrir la création d'IHM en Java. :D
 
Et puis une fois fini, je me suis dit que ca en intéresserait peut être quelque(s)-un(s) d'entre-vous, ou même juste par curiosité pour voir le code pour ceux qui ne connaissent pas SWING ou AWT (y en a tout le temps qui demandent des tutoriaux ...)
 
donc voila :  
la classe à mettre dans un rep convertisseur

Citation :


package convertisseur;
 
import java.awt.*;
import java.awt.event.*;
 
import javax.swing.*;
import javax.swing.text.*;
 
public class Convertisseur extends JFrame {
 
   private final int taille_zone_de_saisie = 15;
 
   private JTextField tf_franc;
   private JTextField tf_euro;
 
   private ConvertisseurIHM convertisseurFrancEuro;
   private ConvertisseurIHM convertisseurEuroFranc;
 
   public Convertisseur() {
      tf_franc = new JTextField(taille_zone_de_saisie);
      tf_franc.setHorizontalAlignment(JTextField.RIGHT);  
      tf_euro = new JTextField(taille_zone_de_saisie);
      tf_euro.setHorizontalAlignment(JTextField.RIGHT);  
 
      convertisseurFrancEuro = new Franc2EuroConvertisseurIHM(tf_franc, tf_euro);
      convertisseurEuroFranc = new Euro2FrancConvertisseurIHM(tf_euro, tf_franc);
 
      tf_franc.addActionListener(convertisseurFrancEuro);
      tf_euro.addActionListener(convertisseurEuroFranc);
 
      tf_franc.addFocusListener(convertisseurFrancEuro);
      tf_euro.addFocusListener(convertisseurEuroFranc);
 
      // passe des euros au franc avec touche 'bas'
      tf_franc.addKeyListener(new KeyAdapter() {
            public void keyPressed(KeyEvent e) {
               if (e.getKeyCode() == 38) {
                  tf_euro.requestFocus();
               }        
            }
         });
      // passe des francs a l'euro avec touche 'haut'
      tf_euro.addKeyListener(new KeyAdapter() {
            public void keyPressed(KeyEvent e) {
               if (e.getKeyCode() == 40) {
                  tf_franc.requestFocus();
               }        
            }
         });
 
      JPanel pan_g = new JPanel(new GridLayout(2,1) {{ setVgap(1); }});
      JPanel pan_d = new JPanel(new GridLayout(2,1) {{ setVgap(1); }});
      JPanel pan_princpal = new JPanel(new BorderLayout(5,0));
 
      pan_princpal.add(pan_g, BorderLayout.WEST);
      pan_princpal.add(pan_d, BorderLayout.CENTER);
      pan_princpal.setBorder(BorderFactory.createEmptyBorder(2,2,2,2));
 
      pan_g.add(new JLabel("Euros : ", JLabel.CENTER));
      pan_g.add(new JLabel("Francs : ", JLabel.CENTER));
      pan_d.add(tf_euro);
      pan_d.add(tf_franc);
 
      this.addWindowListener(new WindowAdapter() {
            public void windowClosing(WindowEvent e) {
               System.exit(0);
            }
         });
 
      this.setContentPane(pan_princpal);
      this.pack();
      this.setTitle("Convertisseur" );
   }
 
 
   abstract class   ConvertisseurIHM implements ActionListener, FocusListener {
      protected java.text.NumberFormat floatFormater = new java.text.DecimalFormat("#,##0.00" );
      private JTextComponent src;  
      private JTextComponent dest;  
   
      public ConvertisseurIHM(JTextComponent src, JTextComponent dest) {
         this.src = src;
         this.dest = dest;
      }
   
      protected abstract float convertion(float f);    
 
      public void focusGained(FocusEvent e) {
         if (! e.isTemporary()) {
            if ( e.getComponent() == src) { // devrait être toujours le cas !
               src.setSelectionStart(0);
               src.setSelectionEnd(src.getText().length());
            }
         }  
      }
      public void focusLost(FocusEvent e) {}
 
      public void actionPerformed(ActionEvent e) {
         convertit();
      }
 
      private void convertit() {
         try {
            String text = src.getText();
            if (text.equals("" )) { return; }      
            text = withoutSpaceAndComma(text);
            float f = Float.parseFloat(text);
            // met à jour la zone de texte de destination
            dest.setText(floatFormater.format(convertion(f)));
            // met au bon format la zone de texte source
            text = floatFormater.format(f);
            src.setText(text);
            src.setSelectionStart(0);
            src.setSelectionEnd(text.length());
         } catch (Exception ex) {
            ex.printStackTrace();
            tf_franc.setText("Erreur : " + ex);
         }  
      }
   
      private String withoutSpaceAndComma(String text) {
         text = text.replace(',', '.';);
         StringBuffer buf = new StringBuffer(text.length());
         char c;
         for (int i = 0; i < text.length(); i++) {
            c = text.charAt(i);          
            if (! Character.isSpaceChar(c)) {
               buf.append(c);
            }
         }
         return buf.toString();
      }
   }
 
   public static final float unEuroEnFrancs = (float) 6.55957;
 
   class Franc2EuroConvertisseurIHM extends ConvertisseurIHM {
      public Franc2EuroConvertisseurIHM(JTextComponent src, JTextComponent dest) { super(src,dest); }
      public float convertion(float francs) { return francs / unEuroEnFrancs; }    
   }
 
   class Euro2FrancConvertisseurIHM extends ConvertisseurIHM {
      public Euro2FrancConvertisseurIHM(JTextComponent src, JTextComponent dest) { super(src,dest); }
      public float convertion(float euros) { return euros * unEuroEnFrancs; }    
   }
     
     
   /// MAIN ///
   public static void main (String[] args) {
      Convertisseur c = new Convertisseur();
      Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize();
      c.setLocation((int) (screenSize.getWidth()/4 - c.getWidth()/2),
                 (int) (screenSize.getHeight()/4 - c.getHeight()/2));
      c.setVisible(true);
   
   }    
}


 
et le .cmd ou .bat qui va bien (à mettre dans le rep en dessous) :

Citation :

start javaw -classpath . convertisseur.Convertisseur


 
PS : en même temps ca me permet de tester la création de topic avec choix de la rubrique ;)
PS2 : surtout si vous trouvez ce post complétement inutile je suis bien d'accord avec vous, alors ne répondez pas et il tombera rapidement dans les abimes du forum ! ;)

 

[jfdsdjhfuetppo]--Message édité par benou le 27-05-2002 à 00:46:38--[/jfdsdjhfuetppo]


---------------
ma vie, mon oeuvre - HomePlayer
mood
Publicité
Posté le 27-05-2002 à 00:26:54  profilanswer
 

n°145239
darklord
You're welcome
Posté le 27-05-2002 à 09:26:33  profilanswer
 

:bounce:  UP!  :bounce:


---------------
Just because you feel good does not make you right
n°145251
Harkonnen
Modérateur
Un modo pour les bannir tous
Posté le 27-05-2002 à 09:41:45  profilanswer
 

yeahhh.... les joies des GUI en Java  [:yamusha]


---------------
J'ai un string dans l'array (Paris Hilton)
n°145261
benou
Posté le 27-05-2002 à 10:13:57  profilanswer
 

tiens, une question en passant : vous pensez quoi de cette façon d'initialiser certaines classes :
 

Citation :

JPanel pan_g = new JPanel(new GridLayout(2,1) {{ setVgap(1); }});


 
Ca créé une class interne anonyme qui est initialisée par un bloc static qui sert de constructeur pour les classes anonymes.
 
Ca permet d'initialiser certains objets en 1 ligne et ca rend donc le code plus lisible. En contrepartie, ca créée une classe supplémentaire.


---------------
ma vie, mon oeuvre - HomePlayer
n°145262
veryfree
Posté le 27-05-2002 à 10:16:25  profilanswer
 

a ouai
j en avait une en flash elle tapait :love:  
en fait le top c une convertion instantané: des que tu entres un chiffre la convertion apparait .En gros t a plus besoin d appuyer sur un bouton pour voir combien ca fait...

n°145263
benou
Posté le 27-05-2002 à 10:19:52  profilanswer
 

veryfree a écrit a écrit :

a ouai
j en avait une en flash elle tapait :love:  
en fait le top c une convertion instantané: des que tu entres un chiffre la convertion apparait .En gros t a plus besoin d appuyer sur un bouton pour voir combien ca fait...  




j'avais fait ca au début mais ca me plaisait pas trop ....


---------------
ma vie, mon oeuvre - HomePlayer
n°145264
veryfree
Posté le 27-05-2002 à 10:26:39  profilanswer
 

t as qu a le mettre en option de meme qu'un de convertion reglable pour nos amis Belges tres present sur ce forum....

n°145283
benou
Posté le 27-05-2002 à 11:01:50  profilanswer
 

veryfree a écrit a écrit :

t as qu a le mettre en option de meme qu'un de convertion reglable pour nos amis Belges tres present sur ce forum....  




on verra ca dans la v2 :)
 
sinon, aucun avis pour ma question de toute a l'heure ?


---------------
ma vie, mon oeuvre - HomePlayer
n°145288
veryfree
Posté le 27-05-2002 à 11:07:22  profilanswer
 

benou a écrit a écrit :

 
on verra ca dans la v2 :)
 
sinon, aucun avis pour ma question de toute a l'heure ?  




 
Ca permet d'initialiser certains objets en 1 ligne et ca rend donc le code plus lisible. En contrepartie, ca créée une classe supplémentaire.
 
 
OUI MOI J AIME BIEN
faut juste s habituer mais c vrais que c plus clair en une ligne
 
les class internes anonymes c bon mangez en
 
 
 
faudrait que j arrete blabla moi  :D

n°145481
benou
Posté le 27-05-2002 à 14:46:18  profilanswer
 

moi je m'attendait à avoir quelques commentaires de dark, gilou et les être javaphiles ... [:sacplastic]


---------------
ma vie, mon oeuvre - HomePlayer
mood
Publicité
Posté le 27-05-2002 à 14:46:18  profilanswer
 

n°145489
darklord
You're welcome
Posté le 27-05-2002 à 14:53:58  profilanswer
 

mais euh j'ai dit up
 
J'ai pas encore eu le temps de tester :(
 
 :cry: l'est méchant avec moi


---------------
Just because you feel good does not make you right
n°145493
benou
Posté le 27-05-2002 à 14:58:48  profilanswer
 

DarkLord a écrit a écrit :

mais euh j'ai dit up
 
J'ai pas encore eu le temps de tester :(
 
 :cry: l'est méchant avec moi  




meuh nan  !!! :D
 
je te demande pas de tester : ca casse vraiment pas des briques, je demandais juste ce que vous pensiez de ce style d'écriture :  

Citation :


JPanel pan_g = new JPanel(new GridLayout(2,1) {{ setVgap(1); }});
 
Ca créé une class interne anonyme qui est initialisée par un bloc static qui sert de constructeur pour les classes anonymes.  
 
Ca permet d'initialiser certains objets en 1 ligne et ca rend donc le code plus lisible. En contrepartie, ca créée une classe supplémentaire.


---------------
ma vie, mon oeuvre - HomePlayer
n°145511
Cherrytree
cn=?
Posté le 27-05-2002 à 15:23:04  profilanswer
 

Yo ! Je découvre en même temps que je lis cette syntaxe peu orthodoxe. Mon avis est que c'est plutôt sympa comme manière. Je n'en avais pas entendu parler. Sympa aussi l'appli ! [:xp1700]

n°145513
darklord
You're welcome
Posté le 27-05-2002 à 15:24:52  profilanswer
 

boh moi franchement je suis nul en GUI java donc j'ai pas spécialement d'impression désolé :D


---------------
Just because you feel good does not make you right
n°145519
Harkonnen
Modérateur
Un modo pour les bannir tous
Posté le 27-05-2002 à 15:32:45  profilanswer
 

c'est quoi Java ?
 
 
ok, je sors  :lol:


---------------
J'ai un string dans l'array (Paris Hilton)
n°145521
benou
Posté le 27-05-2002 à 15:37:39  profilanswer
 

Cherrytree a écrit a écrit :

Yo ! Je découvre en même temps que je lis cette syntaxe peu orthodoxe. Mon avis est que c'est plutôt sympa comme manière. Je n'en avais pas entendu parler.



bha ouais moi non plus ...
 
aurai-je découvert quelque chose ??  
un territoire inconnu sur le grand continent Java ??
 
ta tata taaaa ta tataaaa, ta tata taaaaa ta tataaa ta ta ...
 
Indiana Benou à la reherche de la inner classe perdue
 
:D :lol:


---------------
ma vie, mon oeuvre - HomePlayer
n°145522
gfive
Posté le 27-05-2002 à 15:38:00  profilanswer
 

Cherrytree a écrit a écrit :

Yo ! Je découvre en même temps que je lis cette syntaxe peu orthodoxe. Mon avis est que c'est plutôt sympa comme manière. Je n'en avais pas entendu parler. Sympa aussi l'appli ! [:xp1700]  




 
Ouais, c vrai, c pas mal, mais uniquement tant que tu touches pas à ton layout par la suite, quoi, et tant que t'en a pas besoin.....

n°145525
benou
Posté le 27-05-2002 à 15:39:41  profilanswer
 

gfive a écrit a écrit :

 
Ouais, c vrai, c pas mal, mais uniquement tant que tu touches pas à ton layout par la suite, quoi, et tant que t'en a pas besoin.....  




je suis pas un habitué des GUI java, mais il me semble que souvent on s'en sert pas par la suite nan ?


---------------
ma vie, mon oeuvre - HomePlayer
n°145526
youdontcar​e
Posté le 27-05-2002 à 15:39:49  profilanswer
 

pour revenir au sujet et à la surpuissance de java qui prend environ 70 lignes d'object design power, la même chose en js :
 
<input onkeydown="if (event.keyCode == 13) nextSibling.innerHTML = parseInt(this.value) * 6.55;"><div></div>
 
mais c'est trop simple, on n'a pas le temps de souffrir, haaaa .... :lol:

n°145533
bruno5678
Posté le 27-05-2002 à 15:53:25  profilanswer
 

Penses à gérer l'appui sur les lettres car sinon une belle Erreur


---------------
Le Logiciel est là :
n°145549
Cherrytree
cn=?
Posté le 27-05-2002 à 16:12:22  profilanswer
 

benou a écrit a écrit :

ta tata taaaa ta tataaaa, ta tata taaaaa ta tataaa ta ta ...
 
Indiana Benou à la reherche de la inner classe perdue
 
:D :lol:  



Yaisse, on s'y croirait.

n°150133
Meliok
Posté le 03-06-2002 à 16:30:40  profilanswer
 

Pffff, en R&D,  et çà connais même pô l'utilisation des classes internes, alors que çà te fais une instanciation d'Objet et de methode comme çà pour rire  ;)  
 
On embauche vraiment n'importe qui ici  :D


---------------
Eos 20d(kit) + 70-200 F4L + 50 F1.4 + 420 EX Powered®
n°150150
darklord
You're welcome
Posté le 03-06-2002 à 16:38:40  profilanswer
 

tiens un collègue de l'ami benou :D


---------------
Just because you feel good does not make you right
n°150169
benou
Posté le 03-06-2002 à 16:46:01  profilanswer
 

Meliok a écrit a écrit :

Pffff, en R&D,  et çà connais même pô l'utilisation des classes internes, alors que çà te fais une instanciation d'Objet et de methode comme çà pour rire  ;)  
 
On embauche vraiment n'importe qui ici  :D  




 
Mais qu'est ce qu'il fout là lui ???
maintenant il va voir que je fous rien de mes journées !!!! :D

n°150171
veryfree
Posté le 03-06-2002 à 16:47:33  profilanswer
 

benou a écrit a écrit :

 
 
Mais qu'est ce qu'il fout là lui ???
maintenant il va voir que je fous rien de mes journées !!!! :D  




 
 :lol:  :lol:

n°150184
darklord
You're welcome
Posté le 03-06-2002 à 16:52:19  profilanswer
 

benou a écrit a écrit :

 
 
Mais qu'est ce qu'il fout là lui ???
maintenant il va voir que je fous rien de mes journées !!!! :D  




 
 [:xp1700]


Message édité par darklord le 06-03-2002 à 16:52:29

---------------
Just because you feel good does not make you right
n°150319
Cherrytree
cn=?
Posté le 03-06-2002 à 18:00:55  profilanswer
 

benou a écrit a écrit :

 
 
Mais qu'est ce qu'il fout là lui ???
maintenant il va voir que je fous rien de mes journées !!!! :D  



damned grilled, on dirait.


---------------
Le site de ma maman
n°150432
darklord
You're welcome
Posté le 03-06-2002 à 21:33:57  profilanswer
 

et oh damned grilled (C) moi :D
 
lol  [:titprem]


---------------
Just because you feel good does not make you right
n°150522
benou
Posté le 04-06-2002 à 00:16:03  profilanswer
 

Cherrytree a écrit a écrit :

damned grilled, on dirait.  




pas grave, c'est pas un chef ! ;)
 
manquerait plus que les chefs passe leur temps sur les forums, non mais ... :D


---------------
ma vie, mon oeuvre - HomePlayer
n°150560
Cherrytree
cn=?
Posté le 04-06-2002 à 00:36:42  profilanswer
 

benou a écrit a écrit :

 
pas grave, c'est pas un chef ! ;)
 
manquerait plus que les chefs passe leur temps sur les forums, non mais ... :D  



Ouais mais damned grilled quand même (damned grilled is a registered trademark of DarkLord inc.)


---------------
Le site de ma maman
n°150737
Meliok
Posté le 04-06-2002 à 11:04:59  profilanswer
 

benou a écrit a écrit :

 
 
Mais qu'est ce qu'il fout là lui ???
maintenant il va voir que je fous rien de mes journées !!!! :D  




 
T'inquiète, avec un peu de bol, je te rejoins après les vacances  :D


---------------
Eos 20d(kit) + 70-200 F4L + 50 F1.4 + 420 EX Powered®
mood
Publicité
Posté le   profilanswer
 


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  Java

  [JAVA] Convertisseur Euro-Franc donné la communauté open source ;-)

 

Sujets relatifs
[tk/vb/java] une zone de saisie incliné à 45 degrée c'est possibleJAVA SCRIPT : appeler 3 fct dans un fichier .JS ?
Site http sur Java ?menu au clic droit en java
[Java] Limiter un JTextField a la saisie d'un numérique? [Résolu]Cherche source C pour JPEG
[Java] récupérer le .class contenus dans un jar, c possible ?[Java] Connaître la mémoire utilisée par une classe
[JAVA] beta testeur[java] recuperer la date systeme !!!
Plus de sujets relatifs à : [JAVA] Convertisseur Euro-Franc donné la communauté open source ;-)


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR