begin process at 2012 02 10 19:18:46
  Trouver un code source :
 
dans
 
Accueil > 

Code

 > 

Swing

 > CONVERTISSEUR EURO : SWING, EXCEPTIONS, JFRAME, ACTIONLISTENER, JPANEL, JCHECKBOX .....

CONVERTISSEUR EURO : SWING, EXCEPTIONS, JFRAME, ACTIONLISTENER, JPANEL, JCHECKBOX .....


 Information sur la source

Note :
10 / 10 - par 1 personne
10,00 / 10

  • 1

  • 2

  • 3

  • 4

  • 5

  • 6

  • 7

  • 8

  • 9

  • 10
Catégorie :Swing Classé sous :convertisseur, euro, franc Niveau :Débutant Date de création :02/12/2002 Date de mise à jour :02/12/2002 16:52:40 Vu / téléchargé :15 640 / 767

Auteur : Duss

Ecrire un message privé
Ce membre participe au partage de revenus publicitaires
Commentaire sur cette source (4)
Ajouter un commentaire et/ou une note


 Description

Convertisseur Euro qui permet de manipuler les JFrame, les JCheckBox, les JTextField,
les JButton, les Exceptions et l'Interface ActionListener
Pas Mal pour une première application ou pour débuter avec les GUI

Source

  • /********************************************
  • *
  • *Classe à mettre dans un fichier Main.java
  • *
  • *********************************************/
  • import java.awt.Dimension;
  • import java.awt.*;
  • /**
  • * Classe qui est le point d'entrée de l'application
  • * C'est elle qui va lancer la fenêtre de convertisseur
  • *
  • * @author Duss
  • */
  • public class Main
  • {
  • public static void main(String[] args)
  • {
  • // Déclaration d'un objet de type Convertisseur
  • // et instanciation de ce même objet
  • Convertisseur fen = new Convertisseur();
  • // Affectation d'une taille
  • fen.setSize(450,410);
  • // Affichage
  • fen.setVisible(true);
  • // Définition du titre
  • fen.setTitle("Convertisseur");
  • // On récupère la taille de l'écran (la résolution)
  • // et on place notre fenêtre au milieu
  • Dimension screen = Toolkit.getDefaultToolkit().getScreenSize();
  • fen.setLocation((screen.width - fen.getSize().width)/2,(screen.height - fen.getSize().height)/2);
  • }
  • }
  • /********************************************
  • *
  • *Classe à mettre dans un fichier Convertisseur.java
  • *
  • *********************************************/
  • import java.awt.Container;
  • import java.awt.GridLayout;
  • import java.awt.event.ActionEvent;
  • import java.awt.event.ActionListener;
  • import javax.swing.*;
  • /**
  • * Classe permettant de faire des conversions
  • * entre les francs et les euros.
  • *
  • * La classe "hérite" (extends) de JFrame pour pouvoir
  • * afficher une fenetre à l'écran.
  • *
  • * Elle "implémente" (implements) l'Interface ActionListener
  • * c'est à dire qu'elle doit redéfinir toutes les méthodes
  • * de cette Interface.
  • * Ici il n'y en à qu'une : actionPerformed
  • * Cela permet d'intercepter toutes les actions qui
  • * se passent dans la fenetre (les clicks par exemple)
  • *
  • * @author Duss
  • */
  • public class Convertisseur extends JFrame implements ActionListener
  • {
  • // Constantes pour ameliorer la lisibilité du code
  • public static final int VERS_FRANCS = 1;
  • public static final int VERS_EUROS = 2;
  • public static final double TAUX = 6.55957;
  • // Attributs de la classe
  • private JLabel _labVal, _labRes;
  • private JTextField _txtVal, _txtRes;
  • private JButton _conv;
  • private JCheckBox _euro, _franc;
  • /** Constructeur : c'est la méthode qui se lance
  • * quand on fait un new sur notre classe
  • */
  • public Convertisseur()
  • {
  • // On récupère l'objet de la fenetre
  • // sur lequel on va pouvoir ajouter
  • // nos composants graphiques.
  • Container cont = getContentPane();
  • // On crée 2 JPanel qui sont des "panneaux"
  • // sur lesquels on peut poser des composants
  • // cela va permettre d'avoir une mise en page
  • // avec 2 layouts différents
  • JPanel haut = new JPanel();
  • JPanel bas = new JPanel();
  • // Le layout de notre panel du haut
  • // est une grille de 3 lignes et 2 colonnes
  • haut.setLayout(new GridLayout(3,2));
  • // Création des JLabels
  • _labVal = new JLabel("Valeur");
  • _labRes = new JLabel("Resultat");
  • // Création des JTextField
  • _txtVal = new JTextField();
  • _txtRes = new JTextField();
  • // Création des JCheckBox
  • _euro = new JCheckBox("Euros");
  • _franc = new JCheckBox("Francs");
  • // Euro est cochée, franc ne l'est pas
  • _euro.setSelected(false);
  • _franc.setSelected(true);
  • // Création du bouton
  • _conv = new JButton("Conversion");
  • // On indique que notre fenetre (this = la classe dans laquelle
  • // on se trouve) est chargée "d'écouter" les actions du bouton
  • // et des cases a cocher
  • _conv.addActionListener(this);
  • _euro.addActionListener(this);
  • _franc.addActionListener(this);
  • // On ajoute le panel haut en haut de la feuille
  • // et celui du bas en dessous
  • cont.add(haut,"North");
  • cont.add(bas);
  • // On ajoute les composants labels, textField et
  • // checkBox au panel haut
  • haut.add(_labVal);
  • haut.add(_txtVal);
  • haut.add(_labRes);
  • haut.add(_txtRes);
  • haut.add(_euro);
  • haut.add(_franc);
  • // Le bouton a celui du bas
  • bas.add(_conv);
  • }
  • /**
  • * Fonction de conversion
  • * On utilise les noms des constantes pour
  • * améliorer la lisibilité du code
  • *
  • * @param valeur la valeur à convertir
  • * @param sens le sens de conversion
  • * @return Un double qui est le résultat de la conversion
  • */
  • public double conv(double valeur, int sens)
  • {
  • double res;
  • if (sens == VERS_FRANCS)
  • res = valeur / TAUX;
  • else
  • res = valeur * TAUX;
  • return res;
  • }
  • /**
  • * Fonction pour arrondir
  • * On décale le nombre en le multipliant
  • * par 10 puissance le nombre de décimales
  • * que l'on veut.
  • * On fait un round dessus (arrondi à l'entier)
  • * Puis on redécale en divisant par
  • * 10 puissance le nombre de décimales.
  • *
  • * @param val La valeur à arrondir
  • * @param nbDec Le nombre de décimales
  • * @return Un double qui est l'arrondi
  • */
  • public double arrondir(double val, int nbDec)
  • {
  • return Math.round(val * Math.pow(10,nbDec)) / Math.pow(10,nbDec);
  • }
  • /**
  • * Méthode de l'interface ActionListener
  • *
  • * @param e L'actionEvent correspondant à l'action
  • */
  • public void actionPerformed(ActionEvent e)
  • {
  • // En faisant e.getSource() on récupère
  • // le composant qui à générer l'action
  • // on peut donc faire des traitements différents
  • // Cas ou c'est le bouton
  • // On va faire la conversion
  • if (e.getSource() == _conv)
  • {
  • // Vérification qu'il y a bien quelque chose
  • // à convertir. Si non, on affiche un message
  • if (_txtVal.getText().equals(""))
  • JOptionPane.showMessageDialog(this,"Veuillez saisir une valeur !");
  • else
  • {
  • int sens;
  • double val = 0;
  • // On teste quel case est cochée
  • // et on détermine le sens de conversion
  • if (_euro.isSelected())
  • sens = VERS_EUROS;
  • else
  • sens = VERS_FRANCS;
  • // La fonction parseDouble lance des
  • // exceptions de type numberFormatException
  • // si le String à parser n'est pas un double valide
  • // on va donc intercepter cette possible
  • // exception en l'entourant d'un bloc try/catch
  • // try sert à prévenir qu'une exception peut survenir
  • // catch sert à la récupérer et à faire un
  • // traitement approprié. Ici, l'affichage d'un message
  • try
  • {
  • val = Double.parseDouble(_txtVal.getText());
  • }
  • catch (NumberFormatException ex)
  • {
  • JOptionPane.showMessageDialog(this,"Veuillez saisir un nombre !");
  • }
  • // On appelle la fonction pour arrondir
  • double res = arrondir(conv(val,sens),2);
  • // On affiche le texte
  • _txtRes.setText(String.valueOf(res));
  • }
  • }
  • // Traitement pour que les 2 cases à cocher
  • // ne soit pas cochées en même temps :
  • // Cas ou c'est la case euro qui a généré l'action
  • // La case franc prend la valeur inverse de euro
  • if (e.getSource() == _euro)
  • _franc.setSelected(!_euro.isSelected());
  • // Cas ou c'est la case franc qui a généré l'action
  • // La case euro prend la valeur inverse de franc
  • if (e.getSource() == _franc)
  • _euro.setSelected(!_franc.isSelected());
  • }
  • }
/********************************************
*
*Classe à mettre dans un fichier Main.java
*
*********************************************/
import java.awt.Dimension;
import java.awt.*;


/**
 * Classe qui est le point d'entrée de l'application
 * C'est elle qui va lancer la fenêtre de convertisseur
 * 
 * @author Duss
 */
public class Main
{
	public static void main(String[] args)
	{
		//	Déclaration d'un objet de type Convertisseur
		// 	et instanciation de ce même objet
		Convertisseur fen = new Convertisseur();
		
		// Affectation d'une taille
		fen.setSize(450,410);
		
		// Affichage
		fen.setVisible(true);
		
		// Définition du titre
		fen.setTitle("Convertisseur");
		
		// On récupère la taille de l'écran (la résolution)
		// et on place notre fenêtre au milieu
		Dimension screen = Toolkit.getDefaultToolkit().getScreenSize();
		fen.setLocation((screen.width - fen.getSize().width)/2,(screen.height - fen.getSize().height)/2);
	}
}




/********************************************
*
*Classe à mettre dans un fichier Convertisseur.java
*
*********************************************/

import java.awt.Container;
import java.awt.GridLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

import javax.swing.*;

/**
 * Classe permettant de faire des conversions
 * entre les francs et les euros.
 *
 * La classe "hérite" (extends) de JFrame pour pouvoir
 * afficher une fenetre à l'écran.
 *
 * Elle "implémente" (implements) l'Interface ActionListener
 * c'est à dire qu'elle doit redéfinir toutes les méthodes
 * de cette Interface.
 * Ici il n'y en à qu'une : actionPerformed
 * Cela permet d'intercepter toutes les actions qui
 * se passent dans la fenetre (les clicks par exemple)
 *
 * @author Duss
 */
public class Convertisseur extends JFrame implements ActionListener
{
	// Constantes pour ameliorer la lisibilité du code
	public static final int 		VERS_FRANCS = 1;
	public static final int 		VERS_EUROS 	= 2;
	public static final double 	TAUX 		= 6.55957;

	// Attributs de la classe
	private JLabel		_labVal, _labRes;
	private JTextField	_txtVal, _txtRes;
	private JButton	_conv;
	private JCheckBox	_euro, _franc;

	/** Constructeur : c'est la méthode qui se lance
	 * quand on fait un new sur notre classe
	 */
	public Convertisseur()
	{
		// On récupère l'objet de la fenetre
		// sur lequel on va pouvoir ajouter
		// nos composants graphiques.
		Container cont = getContentPane();

		// On crée 2 JPanel qui sont des "panneaux"
		// sur lesquels on peut poser des composants
		// cela va permettre d'avoir une mise en page
		// avec 2 layouts différents
		JPanel haut = new JPanel();
		JPanel bas 	= new JPanel();

		// Le layout de notre panel du haut
		// est une grille de 3 lignes et 2 colonnes
		haut.setLayout(new GridLayout(3,2));

		// Création des JLabels
		_labVal = new JLabel("Valeur");
		_labRes = new JLabel("Resultat");

		// Création des JTextField
		_txtVal = new JTextField();
		_txtRes = new JTextField();

		// Création des JCheckBox
		_euro 	= new JCheckBox("Euros");
		_franc 	= new JCheckBox("Francs");

		// Euro est cochée, franc ne l'est pas
		_euro.setSelected(false);
		_franc.setSelected(true);

		// Création du bouton
		_conv 	= new JButton("Conversion");

		// On indique que notre fenetre (this = la classe dans laquelle
		// on se trouve) est chargée "d'écouter" les actions du bouton
		// et des cases a cocher
		_conv.addActionListener(this);
		_euro.addActionListener(this);
		_franc.addActionListener(this);

		// On ajoute le panel haut en haut de la feuille
		// et celui du bas en dessous
		cont.add(haut,"North");
		cont.add(bas);

		// On ajoute les composants labels, textField et
		// checkBox au panel haut
		haut.add(_labVal);
		haut.add(_txtVal);
		haut.add(_labRes);
		haut.add(_txtRes);
		haut.add(_euro);
		haut.add(_franc);

		// Le bouton a celui du bas
		bas.add(_conv);

	}

	/**
	 * Fonction de conversion
	 * On utilise les noms des constantes pour
	 * améliorer la lisibilité du code
	 *
	 * @param valeur	la valeur à convertir
	 * @param sens		le sens de conversion
	 * @return Un double qui est le résultat de la conversion
	 */
	public double conv(double valeur, int sens)
	{
		double res;
		if (sens == VERS_FRANCS)
			res = valeur / TAUX;
		else
			res = valeur * TAUX;

		return res;
	}

	/**
	 * Fonction pour arrondir
	 * On décale le nombre en le multipliant
	 * par 10 puissance le nombre de décimales
	 * que l'on veut.
	 * On fait un round dessus (arrondi à l'entier)
	 * Puis on redécale en divisant par
	 * 10 puissance le nombre de décimales.
	 *
	 * @param val		La valeur à arrondir
	 * @param nbDec	Le nombre de décimales
	 * @return Un double qui est l'arrondi
	 */
	public double arrondir(double val, int nbDec)
	{
		return Math.round(val * Math.pow(10,nbDec)) / Math.pow(10,nbDec);
	}

	/**
	 *	Méthode de l'interface ActionListener
	 *
	 * 	@param e 	L'actionEvent correspondant à l'action
	 */
	public void actionPerformed(ActionEvent e)
	{
		// En faisant e.getSource() on récupère
		// le composant qui à générer l'action
		// on peut donc faire des traitements différents

		// Cas ou c'est le bouton
		// On va faire la conversion
		if (e.getSource() == _conv)
		{
			// Vérification qu'il y a bien quelque chose
			// à convertir. Si non, on affiche un message
			if (_txtVal.getText().equals(""))
				JOptionPane.showMessageDialog(this,"Veuillez saisir une valeur !");
			else
			{
				int 	sens;
				double val = 0;

				// On teste quel case est cochée
				// et on détermine le sens de conversion
				if (_euro.isSelected())
					sens = VERS_EUROS;
				else
					sens = VERS_FRANCS;

				// La fonction parseDouble lance des
				// exceptions de type numberFormatException
				// si le String à parser n'est pas un double valide
				// on va donc intercepter cette possible
				// exception en l'entourant d'un bloc try/catch
				// try sert à prévenir qu'une exception peut survenir
				// catch sert à la récupérer et à faire un
				// traitement approprié. Ici, l'affichage d'un message
				try
				{
					val  = Double.parseDouble(_txtVal.getText());
				}
				catch (NumberFormatException ex)
				{
					JOptionPane.showMessageDialog(this,"Veuillez saisir un nombre !");
				}

				// On appelle la fonction pour arrondir
				double res	 = arrondir(conv(val,sens),2);

				// On affiche le texte
				_txtRes.setText(String.valueOf(res));
			}
		}


		// Traitement pour que les 2 cases à cocher
		// ne soit pas cochées en même temps :

		// Cas ou c'est la case euro qui a généré l'action
		// La case franc prend la valeur inverse de euro
		if (e.getSource() == _euro)
			_franc.setSelected(!_euro.isSelected());

		// Cas ou c'est la case franc qui a généré l'action
		// La case euro prend la valeur inverse de franc
		if (e.getSource() == _franc)
			_euro.setSelected(!_franc.isSelected());

	}


}

 Conclusion

Voilà, bon pour ceux qui préfèrent mettre tout dans un seul fichier, on peut aussi,
il suffit de mettre la méthode Main.main dans Convertisseur.
Je trouve que comme ça c'est un peu plus 'propre'.
Mais c'est des manies de coder ;)

J'ai essayé d'être le plus clair possible dans mes commentaires pour
que ce source puisse apporter un max d'info aux débutants.
Si malgrès tout vous trouvez que c'est du patois, demandez moi des précisions
ou donnez les directements !!

Duss

Si vous avez des questions n'hésitez pas

 Fichier Zip

Les Membres Club peuvent télécharger directement un fichier contenu dans le zip sans télécharger le zip en entier !

Télécharger le zip


 Sources du même auteur

COMMENT LISTER L'ARBORESCENCE DES DISQUE DUR DANS UN JTREE
PLEIN ECRAN EN TENANT COMPTE DE LA BARRE DES TACHES
TIMER ET JWINDOW > DEPLACEMENT D UNE FENETRE
AJOUTER DES COMPOSANTS EN CLICKANT SUR UNE JFRAME
JLABEL COULEUR ET MULTILIGNE GRACE AU HTML

 Sources de la même categorie

Source avec Zip Source avec une capture MENU CIRCULAIRE EN SWING par Julien39
Source avec Zip Source avec une capture BANNIÈRE EN SWING : TEXTE DÉFILANT SUR UN JLABEL par Julien39
Source avec Zip Source avec une capture INDICATEUR D'ACTIVITÉ ANIMÉ par Julien39
Source avec Zip Source avec une capture JGRAPH : COMPOSANTS SWING CUSTOMISÉS par Julien39
Source avec Zip Source avec une capture JTABLE CUSTOMISÉE par Julien39

 Sources en rapport avec celle ci

Source avec Zip TRANSFORMATION NOMBRE EN LETTRE par smarticu
Source avec Zip CONVERTISSEUR MYSQL VERS POSTGRESQL par neodante
Source avec Zip Source avec une capture CONVERTISSEUR FRANC-EURO (ET VICE-VERSA) par JuS
Source avec Zip CONVERTISSEUR EURO-FRANCS SANS INTERFACE GRAPHIQUE. par Inc0
Source avec Zip CONVERTISEUR EURO <> FRANCS par fredericv0

Commentaires et avis

Commentaire de Syruis le 16/11/2004 02:29:30

Salut tout ton code marche mais il me sort une erreur sur :
val = double.parseDouble(_txtVal.getText());

double veut pas ...

Merci de ton aide...

Commentaire de Syruis le 16/11/2004 02:33:13

Je sais que ca fait vraiment nb mais tant pis j'arrive même pas a le lancer avec eclipse et je sais pas si c'est Applet ou application pour l'execution... merci encore.

Commentaire de Duss le 16/11/2004 17:32:44

salut, met D et pas d a Double ;)
pour le lancer tu fais run>as new application et tu lui passe la classe main
Duss

Commentaire de thib90000 le 04/08/2006 20:28:01

pas mal du tout :p

mais juste un truc qui peu simplifier un peu
remplace

Dimension screen = Toolkit.getDefaultToolkit().getScreenSize();
         fen.setLocation((screen.width - fen.getSize().width)/2,(screen.height - fen.getSize().height)/2);

par
fen.setLocationRelativeTo(null);

voila
mais sinon chapeau pour les explication ! les debutant von vite aprendre avec twa !
a plus

 Ajouter un commentaire


Discussions en rapport avec ce code source dans le forum

Ajouter ma scrollbar à mon TextArea [ par sabrina145 ] J'ai du mal à arranger le code suivant pr avoir des scrollbars à mon TextArea _txtRes import java.awt.Container; import java.awt.GridLayout; import Atde & conseil! [ par thima137 ] voici un programme que j'ai écrit en java sous Dos de Windows 7 avec le jdk-6u7-windows-i586-p.exe: public class FrancEuro { public static double main Convertisseur FI [ par Neres ] convertisseur d'un fichier (.ps) à un fichier (.pfa) par flex et bison [ par khalid_ben_hamou ] Code de l'euro [ par GuyJava ] Bonjour &#224; tous,Je souhaite ajouter dans un champ texte le logotype de l'euro (€). Quel est le code de ce symbole ?Merci par avance pour les propo Convertisseur Float - Hexa en C [ par Cyli ] Bonjour,je cherche &#224; faire un algo de conversion de float vers hexad&#233;cimal (ou binaire avec signe-exposant-mantisse), tout ca en C, pour r&# Calculatrice/Convertisseur Hexadecimal-Decimal-Octal-Binaire [ par nos784 ] Bonjour à toutes et à tous.Je n'ai aucune connaissances en quoi que ce soit (peut etre en hexadecimal mais j'ai commençé hiers )Je souhaiterais savoir Question à 0 Euro [ par omcougar ] Bonjour,je sens que je vais me faire lincher, car plus le temps passe et plus je me heurte à des problemes qui me semblent pourtant extremement basics convertisseur de devise utilisant la notion des bundles OSGi [ par samirbousselmi ] je veux savoir est ce qu'une application de convertisseur de devise est réalisable en utilisant la plate-forme OSGi. Et si quelqu'un a fait une applic


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Février 2012
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
272829    

Consulter la suite du CalendriCode

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 5,928 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales