Convertisseur de 4 types de variables avec un combobox

Description

ce convertisseur permet de convertir du $ au Dh, du pound au kg, du mile au mètre et du °C au °F dans les deux sens en utilsant un combobox pour choisir le type de conversion souhaité.

Source / Exemple :


package convertisseur;

import javax.swing.JPanel;
import java.awt.GraphicsConfiguration;
import java.awt.HeadlessException;

import javax.swing.JFrame;
import javax.swing.JButton;
import java.awt.Rectangle;

import javax.swing.JOptionPane;
import javax.swing.JTextField;
import javax.swing.JComboBox;
import javax.swing.JLabel;
import javax.swing.SwingUtilities;

public class Convertisseur extends JFrame {

	private static final long serialVersionUID = 1L;
	private JPanel jContentPane = null;
	private JButton jButton = null;
	private JButton jButton1 = null;
	private JTextField jTextField = null;
	private JTextField jTextField1 = null;
	private JComboBox jComboBox = null;
	private JLabel jLabel = null;
	private JLabel jLabel1 = null;

	public Convertisseur() throws HeadlessException {
		super();
		initialize();
	}

	public Convertisseur(GraphicsConfiguration gc) {
		super(gc);
		initialize();
	}

	public Convertisseur(String title) throws HeadlessException {
		super(title);
		initialize();
	}

	public Convertisseur(String title, GraphicsConfiguration gc) {
		super(title, gc);
		initialize();
	}

	/**

  • This method initializes this
*
  • @return void
  • /
private void initialize() { this.setResizable(false); this.setLocationRelativeTo(null); this.setSize(479, 224); this.setContentPane(getJContentPane()); this.setTitle("Convertisseur"); } /**
  • This method initializes jContentPane
*
  • @return javax.swing.JPanel
  • /
private JPanel getJContentPane() { if (jContentPane == null) { jLabel1 = new JLabel(); jLabel1.setBounds(new Rectangle(49, 90, 56, 15)); jLabel1.setText("$"); jLabel = new JLabel(); jLabel.setBounds(new Rectangle(344, 91, 49, 15)); jLabel.setText("DH"); jContentPane = new JPanel(); jContentPane.setLayout(null); jContentPane.add(getJButton(), null); jContentPane.add(getJButton1(), null); jContentPane.add(getJTextField(), null); jContentPane.add(getJTextField1(), null); jContentPane.add(getJComboBox(), null); jContentPane.add(jLabel, null); jContentPane.add(jLabel1, null); } return jContentPane; } /**
  • This method initializes jButton
*
  • @return javax.swing.JButton
  • /
@SuppressWarnings("deprecation") private JButton getJButton() { if (jButton == null) { jButton = new JButton(); jButton.setBounds(new Rectangle(175, 106, 91, 26)); jButton.setEnabled(false); jButton.setText(">>>"); jButton.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent e) { boolean error = test(); // on test la chaine if(error){ // si erreur JOptionPane.showMessageDialog(null,"Opérande manquant ou non valide!!");// on affiche un msg jTextField1.setText(""); // on vide la zone texte } else{ // sinon double d=Double.parseDouble(jTextField1.getText()); switch(jComboBox.getSelectedIndex()){ case 0: // si conversion du dollar vers dirham d *= 7.7; break; case 1: // si conversion du Kg vers pound d *= 0.45; case 2: // si conversion du metre vers mile d *= 1.6; break; case 3: // si conversion du °C vers °F d=( 9 * d / 5 ) + 32; break; } d=(double) Math.round(d * 100) / 100; //on prend de chiffres après la virgule jTextField.setText(""+d); // on affiche } } }); } return jButton; } /**
  • This method initializes jButton1
*
  • @return javax.swing.JButton
  • /
private JButton getJButton1() { if (jButton1 == null) { jButton1 = new JButton(); jButton1.setBounds(new Rectangle(175, 148, 91, 26)); jButton1.setText("<<<"); jButton1.setEnabled(false); jButton1.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent e) { boolean error = test(); if(error){ JOptionPane.showMessageDialog(null,"Opérande manquant ou non valide!!"); jTextField.setText(""); } else{ double d=Double.parseDouble(jTextField1.getText()); switch(jComboBox.getSelectedIndex()){ case 0: d /= 7.7; break; case 1: d /= 0.45; case 2: d /= 1.6; break; case 3: d=( 5 * (d-32) / 9 ) - 32; break; } d=(double) Math.round(d * 100) / 100; jTextField1.setText(""+d); } } }); } return jButton1; } /**
  • This method initializes jTextField
*
  • @return javax.swing.JTextField
  • /
private JTextField getJTextField() { if (jTextField == null) { jTextField = new JTextField(); jTextField.setBounds(new Rectangle(290, 126, 141, 29)); jTextField.addKeyListener(new java.awt.event.KeyAdapter() { public void keyTyped(java.awt.event.KeyEvent e) { jButton1.setEnabled(true); //on active le boutton de la converssion jButton.setEnabled(false); //on désactive le boutton du sens inverse jTextField1.setText(""); //on vide l'autre champ } }); } return jTextField; } /**
  • This method initializes jTextField1
*
  • @return javax.swing.JTextField
  • /
private JTextField getJTextField1() { if (jTextField1 == null) { jTextField1 = new JTextField(); jTextField1.setBounds(new Rectangle(16, 126, 141, 29)); jTextField1.addKeyListener(new java.awt.event.KeyAdapter() { public void keyTyped(java.awt.event.KeyEvent e) { jButton.setEnabled(true); jButton1.setEnabled(false); jTextField.setText(""); } }); } return jTextField1; } /**
  • This method initializes jComboBox
*
  • @return javax.swing.JComboBox
  • /
private JComboBox getJComboBox() { if (jComboBox == null) { jComboBox = new JComboBox(); jComboBox.setBounds(new Rectangle(163, 22, 119, 32)); jComboBox.addItem("Devise"); jComboBox.addItem("Poinds"); jComboBox.addItem("Distance"); jComboBox.addItem("Température"); jComboBox.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent e) { jTextField.setText(""); jTextField1.setText(""); jButton.setEnabled(false); jButton.setEnabled(false); switch(jComboBox.getSelectedIndex()){ case 0: jLabel.setText("DH"); jLabel1.setText("$"); break; case 1: jLabel.setText("Pound"); jLabel1.setText("Kg"); break; case 2: jLabel.setText("m"); jLabel1.setText("Mile"); break; case 3: jLabel.setText("°C"); jLabel1.setText("°F"); break; } } }); } return jComboBox; } public boolean test(){ boolean error = false; int virgule = 0; String s = jTextField1.getText(); //on prend la chaine de la zone texte et on la met dans une chaine de caractère if(s.length()==0) // si la cchaine est vide error=true; // on a une erreur else{ // sinon for(int i=0;i<s.length();i++){ //on teste chaque caractère de la chaine char c = s.charAt(i); if(!Character.isDigit(c)) //si le caractère n'est pas numérique error = true; // on a une erreur String ss = new String(String.valueOf(c)); if(ss.compareTo(".")==0 && virgule<=1){ // on teste si le caractère est une virgule et que c'est la première virgule error = false; // si c le cas on met erreur sur faux virgule++; // on incrémante virgule } } } return error; } public static void main(String[] args) { SwingUtilities.invokeLater(new Runnable() { public void run() { Convertisseur application = new Convertisseur(); application.setVisible(true); } }); } } // @jve:decl-index=0:visual-constraint="120,18"

Codes Sources

A voir également

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.