import java.awt.*;
import java.awt.Graphics;
import java.awt.Color;
import java.applet.*;
import java.awt.event.*;
import java.awt.Font;

public class euroapplet extends java.applet.Applet implements ActionListener {
//cette classe implemente la class actionListener, 
//c'est donc elle qui servira à écouter les actions des boutons qu'elle contient

////////////////////////////variables globales/////////////////////////

//declaration des zones ou seront affichées les resultats
TextField val = new TextField(" ",10),
DM=new TextField(" ",10),
FF=new TextField(" ",10),
LI=new TextField(" ",10),
PST=new TextField(" ",10),
NLG=new TextField(" ",10),
FB=new TextField(" ",10),
IP=new TextField(" ",10),
AS=new TextField(" ",10),
EURO=new TextField(" ",10),
EP=new TextField(" ",10);

//declaration d'un bouton
Button b1 = new Button("CONVERTIR");

//declaration des panneaux, servent à regrouper des élements proche pour la mise en page
Panel p1 = new Panel(),
	p3 = new Panel(),
	p4 = new Panel(),
	p5 = new Panel();

//declaration d'un checkbox pour choisir la monaie corespondant à la somme entrée
CheckboxGroup cbg = new CheckboxGroup();

///////////////////procedure appelée au debut du programme///////////////
public void init() {

Color fond = new Color(Integer.parseInt(getParameter("rouge")),Integer.parseInt(getParameter("vert")),Integer.parseInt(getParameter("bleu")));

setBackground(fond);	//definition du fond noir
setForeground(Color.white);	//definition de la couleur de premier plan (ecriture ...)
setFont(new Font("TimesRoman",Font.PLAIN,12));  //definition de la police utilisée par defaut

this.setLayout(new BorderLayout());  //choix de la mise en page de l'applet

p1.setLayout(new GridLayout(11,1));  //choix de la mise en page pour le panneau1(choix de la monnaie)
p1.add(new Checkbox("DM", cbg, true));
p1.add(new Checkbox("FF", cbg, false));
p1.add(new Checkbox("LI", cbg, false));
p1.add(new Checkbox("PST", cbg, false));
p1.add(new Checkbox("NLG", cbg, false));
p1.add(new Checkbox("FB", cbg, false));
p1.add(new Checkbox("IP", cbg, false));
p1.add(new Checkbox("AS", cbg, false));
p1.add(new Checkbox("EP", cbg, false));

b1.setForeground(Color.blue);
b1.addActionListener(this);  //on place un ecouteur sur le bouton
					//cette ecoueteur est en fait cette class

p3.setLayout(new FlowLayout(FlowLayout.RIGHT));  //chox mise en page du panneau3(en bas)
p3.add(new Label("entrer la somme à convertir"));
val.setBackground(Color.white);
p3.add(val);
p3.add(b1);

p4.setLayout(new GridLayout(12,2));  //choix d'une mise page pour le panneau4
						//mise en page par tableau 2 colonnes, 12 lignes
p4.add(new Label("euro", Label.RIGHT));
EURO.setBackground(fond);
p4.add(EURO);
p4.add(new Label(" "));
p4.add(new Label(" "));
p4.add(new Label("DM", Label.RIGHT));
DM.setBackground(fond);
p4.add(DM);
p4.add(new Label("FF", Label.RIGHT));
FF.setBackground(fond);
p4.add(FF);
p4.add(new Label("LI", Label.RIGHT));
LI.setBackground(fond);
p4.add(LI);
p4.add(new Label("PST", Label.RIGHT));
PST.setBackground(fond);
p4.add(PST);
p4.add(new Label("NLG", Label.RIGHT));
NLG.setBackground(fond);
p4.add(NLG);
p4.add(new Label("FB", Label.RIGHT));
FB.setBackground(fond);
p4.add(FB);
p4.add(new Label("IP", Label.RIGHT));
IP.setBackground(fond);
p4.add(IP);
p4.add(new Label("AS", Label.RIGHT));
AS.setBackground(fond);
p4.add(AS);
p4.add(new Label("EP", Label.RIGHT));
EP.setBackground(fond);
p4.add(EP);

p5.setLayout(new FlowLayout());
Label title = new Label(" conversion des monnaies",Label.CENTER);
title.setFont(new Font("TimesRoman",Font.PLAIN,20));  //association d'une police à l'objet title
title.setForeground(Color.blue);
p5.add(title);

this.add("North", p5); //association des panneaux à l'applet en donnant leurs positions
this.add("South", p3);
this.add("East",p4);
this.add("West",p1);

}

public void actionPerformed(ActionEvent e) {
//fonction charger de recuperer les actions du bouton

Float val_ent = new Float(val.getText());
double euro_val=0.0;
if(cbg.getCurrent().getLabel()=="DM") euro_val=val_ent.doubleValue()/1.95583;
else    {if(cbg.getCurrent().getLabel()=="FF")euro_val=val_ent.doubleValue()/6.55957;
        else    {if(cbg.getCurrent().getLabel()=="LI")euro_val=val_ent.doubleValue()/1.93627;
                else    {if(cbg.getCurrent().getLabel()=="PST")euro_val=val_ent.doubleValue()/166.386;
                        else    {if(cbg.getCurrent().getLabel()=="NLG")euro_val=val_ent.doubleValue()/2.20371;
                                else    {if(cbg.getCurrent().getLabel()=="FB")euro_val=val_ent.doubleValue()/40.3399;
                                        else    {if(cbg.getCurrent().getLabel()=="IP")euro_val=val_ent.doubleValue()/0.787564;
                                                else    {if(cbg.getCurrent().getLabel()=="AS")euro_val=val_ent.doubleValue()/13.7603;
                                                        else    {if(cbg.getCurrent().getLabel()=="EP")euro_val=val_ent.doubleValue()/200.482;
                                                                else System.out.println("erreur!!!!");
        }}}}}}}}
EURO.setText(" " + euro_val); //place la chaine dans le champs EURO
DM.setText(" " + euro_val*1.95583);  //la chaine " " est la pour permettre une convertion implicite du nombre en chaine
FF.setText(" " + euro_val*6.55957);  //normalement on evite car cela prend du temp
LI.setText(" " + euro_val*1.93627);
PST.setText(" " + euro_val*166.386);
NLG.setText(" " + euro_val*2.20371);
FB.setText(" " + euro_val*40.3399);
IP.setText(" " + euro_val*0.787564);
AS.setText(" " + euro_val*13.7603);
EP.setText(" " + euro_val*200.482);

}
}
