begin process at 2010 02 10 03:42:53
  Trouver un code source :
 
dans
 
Accueil > 

Code

 > 

Swing

 > CONVERSION BASE 10 => BASE N ET INVERSEMENT

CONVERSION BASE 10 => BASE N ET INVERSEMENT


 Information sur la source

Note :
8 / 10 - par 2 personnes
8,00 / 10

  • 1

  • 2

  • 3

  • 4

  • 5

  • 6

  • 7

  • 8

  • 9

  • 10
Catégorie :Swing Classé sous :conversion, base, changer Niveau :Débutant Date de création :15/11/2005 Date de mise à jour :15/11/2005 15:53:28 Vu :12 424

Auteur : gmi19oj19

Ecrire un message privé
Commentaire sur cette source (1)
Ajouter un commentaire et/ou une note

 Description

Cliquez pour voir la capture en taille normale
Un vieux code réalisé en Tp il y a 2 ans que j'ai retrouvé il y a peu.

Il permet de convertir un nombre écrit en base 10 en un nombre écrit dans une base comprise entre 2 et 35, ainsi que l'inverse.

Source

  • import java.awt.*;
  • import java.awt.event.*;
  • import javax.swing.*;
  • import javax.swing.event.*;
  • public class Conversions {
  • //declarations des composants graphiques
  • private JFrame fenetre;
  • private JSlider base;
  • private JPanel p1,p2,p3;
  • private JTextField jfield1,jfield2;
  • private JLabel label3,label2;
  • private JTextArea jarea;
  • private final static String doc = //aide contenue dans le JTextArea
  • "\t\tBrève documentation de cette application... \n"+
  • "\nCe petit programme permet de convertir un nombre en base 10 dans une base comprise entre 2 et 36.\n" +
  • "Le \"potentiomètre\" permet de selectionner la base.\n" +
  • "La modification d'un champ suivie de la validation par la touche ENTREE met à jour l'autre champ.\n" +
  • "Lors d'un changement de la base, la valeur en base 10 est convertie.\n\n"+
  • "Les nombres saisis s'écrivent en utilisant les chiffres de 0 à 9,\n"+
  • "puis les lettres de A à Z (miniscules ou majuscules).\n";
  • private final static String[] chiffres = {"0","1","2","3","4","5","6","7","8","9","A",
  • "B","C","D","E","F","G","H","I","J","K","L","M","N","O","P","Q","R","S","T","U","V","W",
  • "X","Y","Z"};
  • //Constructeur
  • public Conversions() {
  • fenetre = new JFrame("Conversions...");
  • Container reser = fenetre.getContentPane();
  • label2 = new JLabel("En base 10");
  • label3 = new JLabel("En base 2");
  • //--- haut de la fenetre -------------------------------------------------------------------------------
  • String s1 = "Changement de base de numération";
  • jarea = new JTextArea(doc);
  • jarea.setEditable(false);
  • JScrollPane jscroll = new JScrollPane(jarea);
  • p1 = new JPanel(new BorderLayout());
  • p1.add(jscroll,BorderLayout.NORTH);
  • p1.setBorder(BorderFactory.createTitledBorder(s1));
  • reser.add(p1,BorderLayout.NORTH);
  • //--- JSlider ----------------------------------------------------------------------------------------------
  • p2 = new JPanel(new GridLayout(0,1));
  • String s2 = "Sélection de la base";
  • base = new JSlider(2,36,2);
  • //--- listener du slider -----------------------------------------------------------------------------------
  • ChangeListener b = new ChangeListener() {
  • public void stateChanged(ChangeEvent e) {
  • label3.setText("En base "+base.getValue());
  • label3.setHorizontalAlignment(SwingConstants.CENTER);
  • String res = "";
  • if (jfield1.getText() == null || jfield1.getText().length() == 0){
  • jfield1.setText(JOptionPane.showInputDialog(fenetre,"Entrez un nombre en base 10","Champ \"Base 10\" vide",JOptionPane.QUESTION_MESSAGE));}//if
  • String s = jfield1.getText();
  • boolean erreur = false;
  • for (int i =0;((i<s.length()) && (!erreur));i++) {
  • if (!('0'<=s.charAt(i) && s.charAt(i)<='9')) {
  • Toolkit.getDefaultToolkit().beep();
  • JOptionPane.showMessageDialog(fenetre,"En base 10, on n'utilise uniquement les chiffres entre 0 et 9","Chiffre non autorisé",JOptionPane.ERROR_MESSAGE);
  • erreur = true;
  • }//if
  • }//for
  • if (!erreur) {
  • int b = Integer.parseInt(jfield1.getText());
  • int n = base.getValue();
  • while (b != 0 ) {
  • res = chiffres[b%n]+res;
  • b = b/n;
  • }//while
  • }//if
  • jfield2.setText(res);
  • }
  • };
  • base.addChangeListener(b);
  • base.setMajorTickSpacing(2);
  • base.setPaintTicks(true);
  • base.setPaintLabels(true);
  • p2.add(base);
  • p2.setBorder(BorderFactory.createTitledBorder(s2));
  • reser.add(p2,BorderLayout.CENTER);
  • //--- les champs de saisie --------------------------------------------------------------------------------------------
  • p3 = new JPanel(new GridLayout(0,2));
  • jfield1 = new JTextField("");
  • jfield2 = new JTextField("");
  • jfield1.setHorizontalAlignment(SwingConstants.CENTER);
  • jfield2.setHorizontalAlignment(SwingConstants.CENTER);
  • label2.setHorizontalAlignment(SwingConstants.CENTER);
  • label3.setHorizontalAlignment(SwingConstants.CENTER);
  • //--- mise a l'écoute des champs ----------------------------------------------------------------------------------------
  • //--- champ base 10 -----------------------------------------------------------------------------------------------------
  • ActionListener b10 = new ActionListener() {
  • public void actionPerformed(ActionEvent e) {
  • String s = jfield1.getText();
  • boolean erreur = false;
  • for (int i =0;i<s.length() && !erreur;i++) {
  • if (!('0'<=s.charAt(i) && s.charAt(i)<='9')) {
  • Toolkit.getDefaultToolkit().beep();
  • JOptionPane.showMessageDialog(fenetre,"En base 10, on n'utilise uniquement les chiffres entre 0 et 9","Chiffre non autorisé",JOptionPane.ERROR_MESSAGE);
  • erreur = true;
  • }//if
  • }//for
  • if (!erreur) {
  • String res = "";
  • int b = Integer.parseInt(jfield1.getText());
  • int n = base.getValue();
  • while (b != 0 ) {
  • res = chiffres[b%n]+res;
  • b = b/n;
  • }//while
  • jfield2.setText(res);
  • }//if
  • }//actionPerformed
  • };//class anonyme
  • jfield1.addActionListener(b10);
  • //--- champ de la base n -------------------------------------------------------------------------------------------------
  • ActionListener bn = new ActionListener() {
  • public void actionPerformed(ActionEvent e) {
  • try{
  • jfield1.setText(""+Integer.parseInt(jfield2.getText(),base.getValue()));
  • }catch (NumberFormatException nfe) {
  • JOptionPane.showMessageDialog(fenetre,"En base "+base.getValue()+", on utilise les chiffres entre 0 et "+chiffres[base.getValue()-1],"Chiffre non autorisé",JOptionPane.ERROR_MESSAGE);
  • }//catch
  • }//actionPerformed
  • };//class anonyme
  • jfield2.addActionListener(bn);
  • //--------------------------------------------------------------------------------------------------------------------
  • p3.add(label2);
  • p3.add(jfield1);
  • p3.add(label3);
  • p3.add(jfield2);
  • reser.add(p3,BorderLayout.SOUTH);
  • }//Conversions()
  • //affichage
  • public void afficher() {
  • fenetre.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
  • fenetre.setSize(650,350);
  • fenetre.setResizable(false);
  • fenetre.setVisible(true);
  • }//afficher
  • //main
  • public static void main (String [] args) {
  • Conversions convertisseur = new Conversions();
  • convertisseur.afficher();
  • }//main
  • }//class Conversions
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import javax.swing.event.*;

public class Conversions {

	//declarations des composants graphiques
	
	private JFrame fenetre;
	private JSlider base;
	private JPanel p1,p2,p3;
	private JTextField jfield1,jfield2;
	private JLabel label3,label2;
	private JTextArea jarea;
	
	private final static String doc = //aide contenue dans le JTextArea
	"\t\tBrève documentation de cette application...   \n"+
	"\nCe petit programme permet de convertir un nombre en base 10 dans une base comprise entre 2 et 36.\n" +
	"Le \"potentiomètre\" permet de selectionner la base.\n" +
	"La modification d'un champ suivie de la validation par la touche ENTREE met à jour l'autre champ.\n" +
	"Lors d'un changement de la base, la valeur en base 10 est convertie.\n\n"+	
	"Les nombres saisis s'écrivent en utilisant les chiffres de 0 à 9,\n"+
	"puis les lettres de A à Z (miniscules ou majuscules).\n";
	
	private final static String[] chiffres = {"0","1","2","3","4","5","6","7","8","9","A",
	"B","C","D","E","F","G","H","I","J","K","L","M","N","O","P","Q","R","S","T","U","V","W",
	"X","Y","Z"};
	
	
	//Constructeur
	public Conversions() {
		fenetre = new JFrame("Conversions...");
		Container reser = fenetre.getContentPane();
		label2 = new JLabel("En base 10");
		label3 = new JLabel("En base 2");
//--- haut de la fenetre -------------------------------------------------------------------------------
		String s1 = "Changement de base de numération";
		jarea = new JTextArea(doc);
		jarea.setEditable(false);
		JScrollPane jscroll = new JScrollPane(jarea);
		p1 = new JPanel(new BorderLayout());
		p1.add(jscroll,BorderLayout.NORTH);
		p1.setBorder(BorderFactory.createTitledBorder(s1));
		reser.add(p1,BorderLayout.NORTH);
//--- JSlider ----------------------------------------------------------------------------------------------
		p2 = new JPanel(new GridLayout(0,1));
		String s2 = "Sélection de la base";
		base = new JSlider(2,36,2);
//--- listener du slider -----------------------------------------------------------------------------------
		ChangeListener b = new ChangeListener() {
			public void stateChanged(ChangeEvent e) {
				label3.setText("En base "+base.getValue());
				label3.setHorizontalAlignment(SwingConstants.CENTER);
				String res = "";
				if (jfield1.getText() == null || jfield1.getText().length() == 0){
				    jfield1.setText(JOptionPane.showInputDialog(fenetre,"Entrez un nombre en base 10","Champ \"Base 10\" vide",JOptionPane.QUESTION_MESSAGE));}//if
				String s = jfield1.getText();
				boolean erreur = false;
				for (int i =0;((i<s.length()) && (!erreur));i++) {
					if (!('0'<=s.charAt(i) && s.charAt(i)<='9')) {
						Toolkit.getDefaultToolkit().beep();
						JOptionPane.showMessageDialog(fenetre,"En base 10, on n'utilise uniquement les chiffres entre 0 et 9","Chiffre non autorisé",JOptionPane.ERROR_MESSAGE);
						erreur =  true;
						}//if
				}//for
				if (!erreur) {
				int b = Integer.parseInt(jfield1.getText());
				int n = base.getValue();
				while (b != 0 ) {
				    res = chiffres[b%n]+res;
				    b = b/n;
				}//while
				}//if
				jfield2.setText(res);
			}
		};
		base.addChangeListener(b);
		base.setMajorTickSpacing(2);
		base.setPaintTicks(true);
		base.setPaintLabels(true);
		p2.add(base);
		p2.setBorder(BorderFactory.createTitledBorder(s2));
		reser.add(p2,BorderLayout.CENTER);
//--- les champs de saisie --------------------------------------------------------------------------------------------
		p3 = new JPanel(new GridLayout(0,2));
		jfield1 = new JTextField("");
		jfield2 = new JTextField("");
		jfield1.setHorizontalAlignment(SwingConstants.CENTER);
		jfield2.setHorizontalAlignment(SwingConstants.CENTER);
		label2.setHorizontalAlignment(SwingConstants.CENTER);
		label3.setHorizontalAlignment(SwingConstants.CENTER);
//--- mise a l'écoute des champs ----------------------------------------------------------------------------------------

//--- champ base 10 -----------------------------------------------------------------------------------------------------
		ActionListener b10 = new ActionListener() {
			public void actionPerformed(ActionEvent e) {
				String s = jfield1.getText();
				boolean erreur = false;
				for (int i =0;i<s.length() && !erreur;i++) {
					if (!('0'<=s.charAt(i) && s.charAt(i)<='9')) {
						Toolkit.getDefaultToolkit().beep();
						JOptionPane.showMessageDialog(fenetre,"En base 10, on n'utilise uniquement les chiffres entre 0 et 9","Chiffre non autorisé",JOptionPane.ERROR_MESSAGE);
						erreur =  true;
						}//if
				}//for
				if (!erreur) {
					String res = "";
					int b = Integer.parseInt(jfield1.getText());
					int n = base.getValue();
				   	while (b != 0 ) {
						res = chiffres[b%n]+res;
						b = b/n;
					}//while
					jfield2.setText(res);
					}//if
				}//actionPerformed
			};//class anonyme
		jfield1.addActionListener(b10);

//--- champ de la base n -------------------------------------------------------------------------------------------------
		ActionListener bn = new ActionListener() {
			public void actionPerformed(ActionEvent e) {
			    try{
			    jfield1.setText(""+Integer.parseInt(jfield2.getText(),base.getValue()));
			    }catch (NumberFormatException nfe) {
				JOptionPane.showMessageDialog(fenetre,"En base "+base.getValue()+", on utilise les chiffres entre 0 et "+chiffres[base.getValue()-1],"Chiffre non autorisé",JOptionPane.ERROR_MESSAGE);
			    }//catch
				}//actionPerformed
				};//class anonyme
		jfield2.addActionListener(bn);		

//--------------------------------------------------------------------------------------------------------------------		
		p3.add(label2);
		p3.add(jfield1);
		p3.add(label3);
		p3.add(jfield2);
		reser.add(p3,BorderLayout.SOUTH);
		
	}//Conversions()
	
	//affichage
	public void afficher() {
	fenetre.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
	fenetre.setSize(650,350);
	fenetre.setResizable(false);
	fenetre.setVisible(true);
	}//afficher
	
	//main
	public static void main (String [] args) {
		Conversions convertisseur = new Conversions();
		convertisseur.afficher();
		}//main
}//class Conversions 

 Conclusion

Tout est expliqué dans le JTextArea de l'appli, suffit d'ouvrir la capture^^

C'est pas tres objet dans le sens ou il n'y a qu'une classe seule classe qui gère tout, mais ça date de mes débuts en Java. Ideal pour se faire la main avec le JSlider.


 Historique

15 novembre 2005 15:53:28 :
Pb de download de la capture >_<

 Sources du même auteur

Source avec Zip Source avec une capture JARSIGNER : SIGNEZ VOS ARCHIVES EN UN RIEN DE TEMPS !
Source avec Zip Source avec une capture JNLPMANAGER : CREEZ ET MODIFIEZ VOS FICHIERS JNLP
Source avec Zip Source avec une capture EXEMPLE D UTILISATION DE JDBC ET D'UNE TRAYICON : TODOLIST
Source avec Zip Source avec une capture JSOKO, UN SOKOBAN EN JAVA
Source avec Zip Source avec une capture APPLICATION D'UN JTABBEDPANE POUR LE CALCUL DES GAINS POUR L...

 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 Source avec une capture PETIT DEMINEUR par samir_guettou
Source avec Zip Source avec une capture CONVERTIR ENTRE LES BASES 10,2,8 ET 16 par 2mohamed2
Source avec Zip ROMANOP : UN UTILITAIRE POUR LES NOMBRES ROMAINS (CONVERSION... par vladmanchev
Source avec Zip VERSION JAVA DE : ROMANUTILS, TOUT POUR CONVERTIR LES CHIFFR... par dje_jay
Source avec Zip TUTORIEL DE PASCAL par amiros2007

Commentaires et avis

Commentaire de olkis le 15/11/2005 19:35:14

programme sympa qui pourrait me servir, l'idée est bonne !
tu aurais pu par contre gérer les exceptions dans des catch..
merci en tout cas !

 Ajouter un commentaire


Discussions en rapport avec ce code source dans le forum

Connection base Access?? [ par muad-dib ] Salutcomment faire pour me connecter à ma base access depuis un applet..? Y a t il des risques a lier une applets directement a un e Base [ par sarani ] Y a t il des risques a lier une applets directement a un e Base de données du point de vue securité ? un petit pb de conversion [ par bidules ] bonjour,voila g créé une grille de bouton en faisant un gridlayout. Pour créer les boutons je fais en toute logique un "for" mais voila j'aimerais num novice recherche développeurs confirmés... [ par olympien13 ] Bonjour à tous,Etant novice, j'aurais voulu savoir si qlq'1 connaissait la solution à mon pb.Je v essayer de m'expliquer.Je dispose de 2 listes déroul Conversion d'un string en float ou double [ par massat ] Bonjour,je suis débutant en java depuis 2 jours. J'essaye de créer une simple calculatrice afin de m'améliorer.J'arrive à transformer des string en in Conversion d'un string en float ou double [ par massat ] Bonjour,je suis débutant en java depuis 2 jours. J'essaye de créer une simple calculatrice afin de m'améliorer.J'arrive à transformer des string en in Base de données [ par bibe ] Bonjour, je ne trouve pas dans la doc "jdk1.2" de méthode qui me permette de savoir combien il y a d'enregistrement dans ma table. question pour les pro [ par bidules ] Bonjour,j'aimerais utiliser une applet pour gerer l'interface graphique d'une base de donnéesje m'explique :l'applet va devoir envoyer des requete sql applet et base de données [ par skysee ] Bonjour,je voudrais savoir comment communiquer avec une base de données Mysql et éxécuter des requetes sql dans une applet?merci Acces à la base de registre [ par Schouly ] Y a t-il un moyen d'accéder à la base de registre Windows en Java.@ +Schouly


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 : 0,265 sec (4)

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