TP1   

 http://bwt.free.fr/tp1.html

 

auteur : Philippe Banwarth

e_mail : bwt@users.sourceforge.net

Source : AppletteFahrenheit.java

JavaDoc : doc_utilisateur

L' Applette demandée :


import java.awt.Button;
import java.awt.Color;
import java.awt.TextField;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.applet.Applet;


/**
 *   une IHM minimale de test de la classe Fahrenheit.
 *
 *   @author   jm Douin
 *   @version  1.0
 *   @since    jdk 1.1.x or higher
 */

public class AppletteFahrenheit extends Applet implements ActionListener{

    /** l'entrée de la valeur en degré Celsius. */
    private TextField entree = new TextField(6);
    /** le bouton de conversion. */
    private Button  boutonDeConversion = new Button("convertir");
    /** la sortie en degré Fahrenheit. */
    private TextField sortie = new TextField(6);     /**
     * Initialise l'applette. 
     * cette méthode est appelée automatiquement par le navigateur.
     */


    public void init() {
      add(entree); add(boutonDeConversion); add(sortie);
      sortie.setEditable(false);
      setBackground(Color.pink);
      boutonDeConversion.addActionListener(this);
    }


    /**
     * méthode déclenchée lorsque le bouton de conversion est appuyé.
     * remarquer que le champ de droite (les degrés Celsius) n'est pas éditable..
     *
     */

    public void actionPerformed(ActionEvent ae){

	float c;

	try {
	    
	    c = fahrenheitEnCelsius(Integer.parseInt(entree.getText()));
	    
	} catch (NumberFormatException e) {

	    c = Float.NaN;

	}

	sortie.setText(Float.toString(c));
    }


    /**
     * Conversion d'une température.
     * Le résultat est arrondit au dixième de degré le plus proche.
     * 100 F donne donc 37.8 C.
     * 
     *   @param f la valeur en degré Fahrenheit
     *   @return  la conversion en degré Celsius.
     */

    private static float fahrenheitEnCelsius(int f){

	float ret;

	// conversion
	ret = (float)(f - 32) * 5F / 9F;
	
	// arrondit
	ret = Math.round(ret * 10F) / 10F;
	
	return ret;
    }
}