begin process at 2012 02 09 09:13:54
  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 :16 193

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

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 EXPORTER UNE BASE DE DONNÉES DANS UN FICHIER TEXTE par Julien39
Source avec Zip Source avec une capture CODE SOURCE EDITEUR BINAIRE par smaili
Source avec Zip CONVERSION D'UN FICHIER IMAGE CD AUDIO CIF CRÉÉ PAR EASY CD ... par fridolindachs
STRING TO (STRING) INT par maximelien
STRING TO (STRING) HEXA par maximelien

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

comment faire pour changer nom de la base de donnée postgres [ par merydol ] bonjour voila mon application répond au besoin de plusieurs utilisateurs et chaque utilisateur a une base de donnée propre a lui . dans une page je ve connexion a une base access [ par ZLATANBEN ] salut: j ai un erreur et je ss pas comment le resoulu : sun.jdbc.odbc.JdbcOdbc.SQLDriverConnect(JdbcOdbc.java:3028) afficher les données d'une base dans un tableau [ par najoulaF ] salut , j'ai developpé une page jsp pour mon application qui a pour objectif d'afficher les informations stockées dans ma base des données (de type O conexion avec base de donnees access [ par ZLATANBEN ] SALUT; JE VEUT INSERER DES DONNEES DANS MON BASE DE DONNEES ET LES DONNEES SONT TAPPES PAR L UTILISATEURS DANS DES jTextField,j ai fait se code et il alimentation d'une base mysql, urgent [ par safaa782003 ] Bonjour, je suis une débutate en java, je cherche à alimenter ma base mysql à partir de mon interface java je porte à votre connaissance que j'arrive Connetion a la base de donnee Mysql [ par fattoo88 ] bonjour [^^sad1] mon problème est que la connexion du servlet au base de donnée ne marche pas il ne le connais pas alors j'ai un class java qui fais l EXCEL TO XML [ par theghost19 ] Bonjour, Je suis entrain de passer un stage, j'ai comme sujet de pfe la réalisation d'une application de suivi des indicateur en java et base de do Netbeans & Access [ par tunisianno ] Salut à tous, je suis en train de réaliser une application de gestion de production en utilisant Netbeans et Access comme base de donnée . SVP aide Application chat en java [ par jc2kc2 ] Bonsoir j'ai un petit projet à rendre concernant un simple salon de chat, avec authentification a une base de donnée. j'ai déja fini la partie interfa afficher les données de deux bases dans la meme fenetre [ par oussamatel ] salut à tous  j'ai un petit problème qui semble facile à résoudre mais dommage j'ai pas trouvé de solution. alors pour commencer j'ai deux bases de d


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Février 2012
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
272829    

Consulter la suite du CalendriCode

Photothèque

 
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,217 sec (3)

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