begin process at 2010 02 10 06:50:32
  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é :13 047 / 665

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

JLABELIMAGE : GESTION D'UNE IMAGE EN ARRIÈRE-PLAN par bob22mael
Source avec Zip SÉLECTEUR DE DATES MULTIPLES, ORIGINE UHRAND par William44290
RECHERCHE D'ELEMENTS DANS UNE JLIST par Ze_Hulk
Source avec Zip Source avec une capture PROGICIEL DE LOCATION DE VOITURE par SoftDeath
Source avec Zip Source avec une capture CALENDRIER ET HORLOGE AVEC LA LIBRAIRIE ORG.JDESKTOP.SWINGX par Cornellus1985

 Sources en rapport avec celle ci

Source avec Zip CONVERTISSEUR MYSQL VERS POSTGRESQL par neodante
RTF TO HTML par tarzent
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 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 inrme convertisseur entr le base en swing [ par ouabida10 ] salut a tous je vous propose aujourd'huit une appliction en swing qui vous permet la converssation d'un nombre d'une base de numération vers une autre Manipulation JTable-JLabel(Icon) [ par crazysetup ] Bonjour à tous, J'implore votre aide parce que ça fait 2 jours que je bute sur ce problème, alors voila : J'ai une JTable composée de 2 colonnes, cet


Nos sponsors


Sondage...

CalendriCode

Février 2010
LMMJVSD
1234567
891011121314
15161718192021
22232425262728

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 : 1,030 sec (4)

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