Java Genesis

Hints for Chapter 12: Applets

Problem 8: temperature conversion as an applet

Here is our code for the class ConversionApplet:

   import javax.swing.*;
   import java.awt.*;
   import java.awt.event.*;

   public class ConversionApplet extends JApplet {
	/*
  	Convert Fahrenheit to Centigrade and conversely.
  	*/
	// instance variables
	private JTextField fah, cent;
	
	public void init ( ) {
	   Font f = new Font("SansSerif", Font.BOLD, 30);
	   fah = new JTextField("0.0", 9);
	   fah.setFont(f);
	   cent = new JTextField("0.0", 9);
	   cent.setFont(f);
	   JLabel fahLabel = new JLabel("deg F:", JLabel.RIGHT);
	   fahLabel.setFont(f);
	   JLabel centLabel = new JLabel("deg C:", JLabel.RIGHT);
	   centLabel.setFont(f);
	   JButton fahToCent = new JButton("convert F to C");
	   fahToCent.setFont(f);
	   JButton centToFah = new JButton("convert C to F");
	   centToFah.setFont(f);
	   fahToCent.addActionListener(new ActionListener() {
		public void actionPerformed(ActionEvent evt) {
	   	    double fahDegrees =
			Double.valueOf(fah.getText()).doubleValue();
	   	    double centDegrees =
			(int)((fahDegrees-32)*5/9*100)/100.0;
	   	    cent.setText(""+centDegrees);
		}
	   });
	   centToFah.addActionListener(new ActionListener() {
		public void actionPerformed(ActionEvent evt) {
		   double centDegrees =
			Double.valueOf(cent.getText()).doubleValue();
		   double fahDegrees =
			(int)((centDegrees*9/5+32)*100)/100.0;
		   fah.setText(""+fahDegrees);
		}
	   });
	   JPanel p = new JPanel();
	   p.add(fahLabel);
	   p.add(fah);
	   p.add(centLabel);
	   p.add(cent);
	   p.add(fahToCent);
	   p.add(centToFah);
	   Container c = getContentPane();
	   p.setBackground(Color.white);
	   c.add(p);
  }
}