Java Converter App with GUI: Temperature and Distance Conversion Using Inheritance and Swing

 This Java programming project demonstrates object-oriented principles by implementing a converter class hierarchy with GUI support. The application includes a base Converter class and two subclasses, TemperatureConverter and DistanceConverter, each overriding the convert() method. The program also features a Swing-based graphical user interface (GUIConverter) using JFrame, JPanel, and JOptionPane to allow user interaction for temperature (Fahrenheit to Celsius) and distance (miles to kilometers) conversions. Designed with clean code, meaningful comments, and user-friendly dialogs, this project highlights core OOP concepts, GUI programming, and user input handling in Java.

Java Converter App with GUI: Temperature and Distance Conversion Using Inheritance and Swing


Computer Science questions and answers

Design and implement Java program as follows: 1) Implement converter class hierarchy as follows: a

 

Design  and implement Java program as follows: 1) Implement converter class  hierarchy as follows: a. Converter class which includes: • Private  attribute for input of data type double • Default constructor with no  parameter which sets input to Double.NaN • Overloaded constructor with  input for parameter • Get and set methods for input attribute • Method

Design and implement Java program as follows: 1) Implement converter  class hierarchy as follows: a. Converter class which includes: • Private  attribute for input of data type double • Default constructor with no  parameter which sets input to Double.NaN • Overloaded constructor with  input for parameter • Get and set methods for input attribute • Method  convert() which returns input value b. TemperatureConverter class which  is a child of Converter and includes: . Constructors which call parent  constructors • Overridden convert() method to convert input (Fahrenheit  temperature) to Celsius and returns the value. If the instance has no  input value, it should return Double.NaN • Use the following formula for  conversion: C = ((F-32)*5)/9 c. Distance Converter class which is a  child of Converter and includes: • Constructors which call parent  constructors • Overridden convert() method to convert input (distance in  miles) to distance in kilometers and returns the value. If the instance  has no input value, it should return Double.NaN d. Use the following  formula for conversion: KM=M* 1.609 2) Implement GUIConverter class  using JFrame and JPanel as follows: a. GUI will have 3 buttons:  “Distance Converter”, “Temperature Converter”, and "Exit". Welcome to  Converter Distance Converter Temperature Converter Exit b. When user  clicks Exit, the program will terminate   c. When user clicks Distance Converter, an input dialog will pop up  where user can type value and click OK: Welcome to Converter Input ?  input miles distance to convert 3.1 Converter OK Cancel Exit d. Once  user clicks OK, message dialog will pop up: Welcome to Converter Message  х 03.1 F equals 4.9879c re Converter OK Exit e. When user clicks on  Temperature button, an input dialog will pop up to input value and then  when clicks OK, the message dialog with pop up with converted result:  Welcome to Converter Input ? Input fahrenheit temperature to convert 32  Converter OK Cancel Exit Welcome to Converter Message X 0 32 F equals  0.0C he Converter OK Exit f. SUGGESTIONS: • For the input dialog you can  use JOptionPane.showInputDialog • The ActionListener for each Converter  button should create the appropriate Converter child instance, set the  input, and call its convert() method • For the pop up with converted  value you can use JOptionPane.showMessageDialog   Style and Documentation: Make sure your Java program is using the  recommended style such as: Javadoc comment up front with your name as  author, date, and brief purpose of the program Comments for variables  and blocks of code to describe major functionality Meaningful variable  names and prompts • Class names are written in upper CamelCase •  Constants are written in All Capitals • Use proper spacing and empty  lines to make code human readable Capture execution: You should capture  and label screen captures associated with compiling your code, and  running the a passing and failing scenario for each functionality 

 

 

 Answer

// class name

public class converter {

 

 

Double  attribute  ;

 

 

// constructor

 

public converter(){

  attribute  = Double.NaN;

}

 

public converter( double attribute){

  this.attribute  = attribute;

 

}

 

 

 

public Double  convert( ){

 

Double input = 0.0;

 

if(!attribute .isNaN())

 input = attribute ;

 

return input ;

}

 

 

 

 

}// end class

 

 

 

// class name

 

public class TemperatureConverter  extends converter{

 

Double  Temperature ;

 

// constructor

 

 public TemperatureConverter(Double Temperature ){

 

super(Temperature);

 

this.Temperature = Temperature;

 

}

 

 

// convert method

public Double  convert(){

 

Double input = 0.0;

 

if(!Temperature.isNaN() )

 

input =    ((Temperature-32.0)*5.0)/9.0;

 

else

input = Double.NaN;

 

 

return input ;

}

 

 

}

 

 

 

 

// class name

 

public class DistanceConverter   extends converter{

 

 

Double  Distance ;

 

// constructor

 

public DistanceConverter( Double Distance){

 

super(Distance);

 

this.Distance = Distance;

 

}

 

 

// convert method

 

public Double  convert(){

 

Double input = 0.0;

 

if(!Distance.isNaN() )

input = Distance * 1.609  ;

 

else

input = Double.NaN;

 

return input ;

}

 

}

 

 

import java.awt.event.*;

import java.awt.*;

import javax.swing.JOptionPane;

import javax.swing.JPanel;

import javax.swing.JFrame;

import javax.swing.JButton;

 

// class name

 

public class GUIConverter  extends JFrame {

 

// constructor

public GUIConverter(){

 

 JFrame f;

 

// JButton

 JButton b, b1, b2;

 

// create a new frame to store text field and button

f = new JFrame("Converter");

 

 

// create a new buttons

b = new JButton("Distance COnverter");

b1 = new JButton("Temperature COnverter");

b2 = new JButton("Exit");

 

// create a panel to add buttons

JPanel p = new JPanel();

GridBagLayout layout = new GridBagLayout();

p.setLayout(layout);

GridBagConstraints gbc = new GridBagConstraints();

 

// Put constraints on different buttons

gbc.fill = GridBagConstraints.HORIZONTAL;

gbc.gridx = 0;

gbc.gridy = 0;

p.add(b, gbc);

 

gbc.gridx = 1;

gbc.gridy = 0;

p.add(b1, gbc);

 

gbc.gridx = 0;

gbc.gridy = 5;

gbc.fill = GridBagConstraints.HORIZONTAL;

gbc.gridwidth = 5;

p.add(b2, gbc);

 

// add buttons and textfield to panel

p.add(b);

p.add(b1);

p.add(b2);

 

// actions for button

 

// distance action

    b.addActionListener(new ActionListener(){

    public void actionPerformed(ActionEvent e){

 

// get input

     Double distance= Double.parseDouble(JOptionPane.showInputDialog("Enter miles distance to convert ?") );

 

 // instance class object

 DistanceConverter dist = new DistanceConverter(distance);

 

    JOptionPane.showMessageDialog(f,distance+" is equal "+dist.convert());

 

 

    }

    });

 

// Temperature action

 

    b1.addActionListener(new ActionListener(){

    public void actionPerformed(ActionEvent e){

// get input

 

       Double Temperature= Double.parseDouble(JOptionPane.showInputDialog("Enter Temperature to convert ?"));

 

 // instance class object

 TemperatureConverter temp = new TemperatureConverter(Temperature);

    JOptionPane.showMessageDialog(f,Temperature+" is equal "+temp.convert());

 

    }

    });

 

// Exit action

 

    b2.addActionListener(new ActionListener(){

    public void actionPerformed(ActionEvent e){

            System.exit(0);

    }

    });

 

// add panel to frame

f.add(p);

 

// set the size of frame

f.setSize(400, 200);

 

f.show();

 

 

}

 

 

 

 // main class

public static void main(String[] args)

{

 

new GUIConverter();

    }

 

 

 

}

 

  📩 Need a similar solution? Email me: adel455@hotmail.com


 

Previous Post Next Post

Comments

Nepali Graphics - Learn design, Animation, and Progrmming