Java Swing AWT Program to Build Fahrenheit to Celsius (Temperature Converter) GUI Desktop App

You are currently viewing Java Swing AWT Program to Build Fahrenheit to Celsius (Temperature Converter) GUI Desktop App

Here, I wish to present the article with the concept of “Java Swing AWT Program to Build Fahrenheit to Celsius (Temperature Converter) GUI Desktop App”. Let’s go for an article to see the possibilities below.

Java Swing AWT Program to Build Fahrenheit to Celsius (Temperature Converter) GUI Desktop App

temperatureconverter.java

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

/**
This class displays a window with a slider component.
The user can convert the Celsius temperatures from
0 through 100 to Fahrenheit by moving the slider.
*/

public class TempConverter extends JFrame
{
   private JLabel label1, label2; // Message labels
   private JTextField fahrenheitTemp; // Fahrenheit temp
   private JTextField celsiusTemp; // Celsius temp
   private JPanel fpanel; // Fahrenheit panel
   private JPanel cpanel; // Celsius panel
   private JPanel sliderPanel; // Slider panel
   private JSlider slider; // Temperature adjuster

   /**
Constructor
*/

   public TempConverter()
   {
      // Set the title.
      setTitle("Temperatures");

      // Specify an action for the close button.
      setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

      // Create the message labels.
      label1 = new JLabel("Fahrenheit: ");
      label2 = new JLabel("Celsius: ");

      // Create the read-only text fields.
      fahrenheitTemp = new JTextField("32.0", 10);
      fahrenheitTemp.setEditable(false);
      celsiusTemp = new JTextField("0.0", 10);
      celsiusTemp.setEditable(false);

      // Create the slider.
      slider = new JSlider(JSlider.HORIZONTAL, 0, 100, 0);
      slider.setMajorTickSpacing(20); // Major tick every 20
      slider.setMinorTickSpacing(5); // Minor tick every 5
      slider.setPaintTicks(true); // Display tick marks
      slider.setPaintLabels(true); // Display numbers
      slider.addChangeListener(new SliderListener());

      // Create panels and place the components in them.
      fpanel = new JPanel();
      fpanel.add(label1);
      fpanel.add(fahrenheitTemp);
      cpanel = new JPanel();
      cpanel.add(label2);
      cpanel.add(celsiusTemp);
      sliderPanel = new JPanel();
      sliderPanel.add(slider);

      // Create a GridLayout manager.
      setLayout(new GridLayout(3, 1));

      // Add the panels to the content pane.
      add(fpanel);
      add(cpanel);
      add(sliderPanel);

      // Pack and display the frame.
      pack();
      setVisible(true);
   }

   /**
Private inner class to handle the change events
that are generated when the slider is moved.
*/

   private class SliderListener implements ChangeListener
   {
      public void stateChanged(ChangeEvent e)
      {
         double fahrenheit, celsius;
         DecimalFormat fmt = new DecimalFormat("0.0");

         // Get the slider value.
         celsius = slider.getValue();

         // Convert the value to Fahernheit.
         fahrenheit = (9.0 / 5.0) * celsius + 32.0;

         // Store the celsius temp in its display field.
         celsiusTemp.setText(
                     Double.toString(celsius));

         // Store the Fahrenheit temp in its display field.
         fahrenheitTemp.setText(fmt.format(fahrenheit));
      }
   }

   /*
The main method creates an instance of the
class, which displays a window with a slider.
*/

   public static void main(String[] args)
   {
      new TempConverter();
   }
}

Final Thoughts

I hope this article helps you to clear the topic of “Java Swing AWT Program to Build Fahrenheit to Celsius (Temperature Converter) GUI Desktop App”. If you face any issues please let me know via the comment section. Share this article with other Java program developers via social networks. Thank You!

Ranjith

Hi, I'm Manoj a full-time Blogger, YouTuber, Affiliate Marketer, & founder of Coding Diksha. Here, I post about programming to help developers.

Leave a Reply