Answered! Design and develop a GUI Java program to convert temperatures from Fahrenheit to Celsius and from Celsius to…

Design and develop a GUI Java program to convert temperatures from Fahrenheit to Celsius and from Celsius to Fahrenheit. (This problem is derived from exercise #6.22, p. 240 of the text). The GUI should contain two JTextField’s, two JLabel’s, and two JButton’s. The text fields will be used for entry of one temperature value (either Fahrenheit or Celsius). The JLabels will name the text fields – i.e. ‘Celsius’ and ‘Fahrenheit’. After entering a single temperature value, the user will then press the appropriate ‘convert’ command button – i.e. ‘Convert to Celsius’ or ‘Convert to Fahrenheit’. The button event handler for the button pressed will calculate the converted temperature and display that in the appropriate text field for temperature. Use anonymous event handles in all cases. It doesn’t need to be fancy, just gets the job done. Thanks!

Conversion Formulas:

celsius= 5.0/9.0 * (farenheight -32);

farenheiht = 9.0/5.0 * (celsius + 32);

Starting Point:

package anonymousGUI;

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

public class SimpleComponentFrame extends JFrame {
// declare instance variables – i.e. references to components
private JLabel label1;
private JTextField field1;
private JButton button1, button2, buttonClear;

// methods – the constructor to define components, event handlers, etc.
public SimpleComponentFrame () {

// design GUI, title and layout manager first
super (“A Simple GUI”);
setLayout (new FlowLayout ());

// create and add components
label1 = new JLabel (“I’m a label”);
add (label1);

field1 = new JTextField (15);
add (field1);

button1 = new JButton (“Press me”);
add (button1);
button2 = new JButton (“Not Yet”);
add (button2);
buttonClear = new JButton (“Clear”);
add (buttonClear);

// design event handlers here
Handler handleEvents = new Handler ();
button1.addActionListener (handleEvents);
button2.addActionListener (
new ActionListener () {
// override
public void actionPerformed (ActionEvent event) {
JOptionPane.showMessageDialog (null, “I’m button2”);
} // end method actionPerformed
} // end my anonymous inner class
);
buttonClear.addActionListener (
new ActionListener () {
// override
public void actionPerformed (ActionEvent event) {
// clear the field
field1.setText (“”);
} // end method actionPerformed
} // end anonymous inner class
); // end method addActionListener

} // end constructor

// create a nested, inner class that is the event handler class
private class Handler implements ActionListener {

// the actionPerformed override
public void actionPerformed (ActionEvent event) {
String text = “”;

// assume/know the only component to generate an event will be the button
// use the set/get text methods to get textfield data. We can because an
// inner class has access to private variables of the ‘containing’ class
text = “You Pressed ME! ” + field1.getText ();

// show a message dialog
JOptionPane.showMessageDialog (null, text);

} // end method actionPerformed

} // end nested class Handler

} // end class SimpleComponentFrame

Test Driver:

package anonymousGUI;

import javax.swing.JFrame;

public class TestDriver {

public static void main(String[] args) {
// declare local variables/references here
SimpleComponentFrame frame = new SimpleComponentFrame ();
frame.setDefaultCloseOperation (JFrame.EXIT_ON_CLOSE);
frame.setSize (300,150);
frame.setVisible (true);

} // end method main

} // end class TestDriver

Expert Answer

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

class SimpleComponentFrame extends JFrame implements ActionListener{
// declare instance variables – i.e. references to components
private JLabel celLable,FarLabel;
private JTextField celText,FarText;
private JButton celButt, FarButt;

// methods – the constructor to define components, event handlers, etc.
public SimpleComponentFrame () {

// design GUI, title and layout manager first
super (“A Simple GUI”);
setLayout(new GridLayout(3,2));

//labels && TextFileds && buttons
celLable=new JLabel(“Celsius”);
celText=new JTextField();
FarLabel=new JLabel(“Fahrenheit”);
FarText=new JTextField();
celButt=new JButton(“Celsius to Fahrenheit”);
FarButt=new JButton(“Fahrenheit to Celsius”);

//adding action listners
celButt.addActionListener(this);
FarButt.addActionListener(this);
//adding components
add(celLable);add(celText);
add(FarLabel);add(FarText);
add(celButt);add(FarButt);

setVisible(true);
} // end constructor
//converting fahrenheit to celicius
public double fahrenheitToCelcius(double temperatue){
return ((temperatue – 32)*5)/9;
}
//converting celcius to fahrenheit
public double celsiusToFahrenheit(double temperatue){
return (9*temperatue)/5+32;
}
public void actionPerformed(ActionEvent ev){
if(ev.getSource()==celButt){
if(celText.getText().equals(“”)){
JOptionPane.showMessageDialog (this, “Celicus Field is empty”);
}
else{
double cel=Double.parseDouble(celText.getText());//getting celcius and convert it into double
FarText.setText(“”+celsiusToFahrenheit(cel));//converting celcius to fahrenheit and setting text
}
}
if(ev.getSource()==FarButt){
if(FarText.getText().equals(“”)){
JOptionPane.showMessageDialog (this, “fahrenheit Field is empty”);
}
else{
double far=Double.parseDouble(FarText.getText());//getting fahrenheit and convert it into double
celText.setText(“”+fahrenheitToCelcius(far));//converting fahrenheit to celcius and setting text
}
}
}
} // end class SimpleComponentFrame

public class TestDriver {

public static void main(String[] args) {
// declare local variables/references here
SimpleComponentFrame frame = new SimpleComponentFrame ();
frame.setDefaultCloseOperation (JFrame.EXIT_ON_CLOSE);
frame.setSize (300,150);
frame.setVisible (true);

} // end method main

} // end class TestDriver

Still stressed from student homework?
Get quality assistance from academic writers!