Question: I have a JAVA program that requires me to modify the JAVA code that always the use of exponents. How do I do that. //
I have a JAVA program that requires me to modify the JAVA code that always the use of exponents. How do I do that.
// ITP 120 Java
// Homework 13 (100 points) Due Date: April 25, 2018
// Modify this program by adding a capability to use exponents
// Add a button for exponent calculations
// Example: double result = Math.pow(3, 4);// result is 243; 3**4 = 243
// Exception handling is being used in this program to catch improperly formatted inputs.
// *******************************************************************
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import javax.swing.border.*;
public class JavaGUICalculator extends JFrame {
//Declare variables of GUI Components
private JLabel jlblNumber1 = new JLabel("Number 1");
private JLabel jlblNumber2 = new JLabel("Number 2");
private JLabel jlblResult = new JLabel("Result");
private JTextField jtfNumber1 = new JTextField(5);
private JTextField jtfNumber2 = new JTextField(5);
private JTextField jtfResult = new JTextField(10);
private JButton jbtAdd = new JButton("Add");
private JButton jbtSubtract = new JButton("Subtract");
private JButton jbtMultiply = new JButton("Multiply");
private JButton jbtDivide = new JButton("Divide");
private JButton jbtCls = new JButton("Clear");
private JButton jbtExit = new JButton("Exit");
public JavaGUICalculator()
{
initGUICalculator();
}// End of no-arg-constracter.
private void initGUICalculator(){
//Seting up the border line for panels.
Border line = new LineBorder(Color.BLACK, 1);
//setting up the colors.
//Colors for label.
jlblNumber1.setForeground(new Color(28, 50, 210));
jlblNumber2.setForeground(new Color(28, 50, 210));
jlblResult.setForeground(new Color(28, 50, 210));
//Colors for text fields.
jtfNumber1.setForeground(new Color(28, 50, 210));
jtfNumber2.setForeground(new Color(28, 50, 210));
jtfResult.setForeground(new Color(28, 50, 210));
//Colors for buttons.
jbtAdd.setForeground(new Color(28, 50, 210));
jbtSubtract.setForeground(new Color(28, 50, 210));
jbtMultiply.setForeground(new Color(28, 50, 210));
jbtDivide.setForeground(new Color(28, 50, 210));
jbtCls.setForeground(new Color(28, 50, 210));
jbtExit.setForeground(new Color(28, 50, 210));
//Label and TextField panels
JPanel panel1 = new JPanel();
panel1.setLayout(new FlowLayout(FlowLayout.LEFT,5,2));
panel1.setBackground(Color.yellow);
panel1.add(jlblNumber1);
panel1.add(jtfNumber1);
panel1.add(jlblNumber2);
panel1.add(jtfNumber2);
panel1.add(jlblResult);
panel1.add(jtfResult);
panel1.setBorder(line);
jtfResult.setEditable(false); // The result is NOT editable.
//Button panel
JPanel panel2 = new JPanel();
panel2.setLayout(new FlowLayout(FlowLayout.CENTER,5,2));
panel2.setBackground(Color.orange);
//Adding button variables to panel2
panel2.add(jbtAdd);
panel2.add(jbtSubtract);
panel2.add(jbtMultiply);
panel2.add(jbtDivide);
panel2.add(jbtCls);
panel2.add(jbtExit);
panel2.setBorder(line);
//set the button keys as mnemonic 'A','S','M','D' Use Alt+A on keyboard
jbtAdd.setMnemonic('A');
jbtSubtract.setMnemonic('S');
jbtMultiply.setMnemonic('M');
jbtDivide.setMnemonic('D');
jbtCls.setMnemonic('C');
jbtExit.setMnemonic('E');
// Set the button tool tips.
jbtAdd.setToolTipText("Click to add values or press");
jbtSubtract.setToolTipText("Click to Subtract values or press");
jbtMultiply.setToolTipText("Click to Multiply values or press");
jbtDivide.setToolTipText("Click to divide values or press");
jbtCls.setToolTipText("Click to Clear the values or press");
jbtExit.setToolTipText("Click to Exit from here or press");
//Adding panel1 and panel2 which are (JPanels) to the frame
//Set the layout as a border layout
getContentPane().setLayout(new BorderLayout());
getContentPane().add(panel1, BorderLayout.CENTER); //Panel1 will be in the center.
getContentPane().add(panel2, BorderLayout.SOUTH); //Panel2 will be in the botton.
// Upon closing the window, the program will be halted.
addWindowListener(new WindowAdapter(){
public void windowClose(WindowEvent e){
System.exit(0);//Program will be Halted.
}
});
//Registering the button listeners in the inner class.
//To add the two values.
jbtAdd.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e){
String caption = e.getActionCommand();
if(e.getSource() instanceof JButton){
if("Add".equals(caption))
calculator(0);
}
}
});
//To subtract two values.
jbtSubtract.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e){
String caption = e.getActionCommand();
if(e.getSource() instanceof JButton){
if("Subtract".equals(caption))
calculator(1);
}
}
});
//To multiply two values.
jbtMultiply.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e){
String caption = e.getActionCommand();
if(e.getSource() instanceof JButton){
if("Multiply".equals(caption))
calculator(2);
}
}
});
//To divide two values.
jbtDivide.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e){
String caption = e.getActionCommand();
if(e.getSource() instanceof JButton){
if("Divide".equals(caption))
calculator(3);
}
}
});
//To clear all the value fields
jbtCls.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e){
String caption = e.getActionCommand();
if(e.getSource() instanceof JButton){
if("Clear".equals(caption))
clearFields();
}
}
});
//To exit from this JavaGUICalculator program.
jbtExit.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e){
String caption = e.getActionCommand();
if(e.getSource() instanceof JButton){
if("Exit".equals(caption))
clearFields();
System.exit(0);//Halt the programe and exit from here.
}
}
});
}//End of initCalculator method.
public void calculator(int operator)
{
//Using try catch block for improperly formatted input.
try {
double num1 = new Double(jtfNumber1.getText().trim()).doubleValue();
double num2 = new Double(jtfNumber2.getText().trim()).doubleValue();
double result = 0.0;
switch(operator){
case 0 : result = (num1 + num2); break;
case 1 : result = (num1 - num2); break;
case 2 : result = (num1 * num2); break;
case 3 : result = (num1 * 1.0 / num2); break;
}
String str = String.format("%1.4f", result);
jtfResult.setText(String.valueOf(str));
//process improperly formatted input.
}
catch (NumberFormatException numberError)
{
JOptionPane.showMessageDialog(this,"You must enter two values", "Invalid Number Format", JOptionPane.ERROR_MESSAGE );
clearFields();
}
} //End of calculator method.
// Clear all the fields and return to
// set the Focus at the insertion point.
public void clearFields(){
jtfNumber1.setText(" ");
jtfNumber2.setText(" ");
jtfResult.setText(" ");
jtfNumber1.requestFocus();
}//End of clearFields method.
public static void main(String[] args){
JavaGUICalculator frame = new JavaGUICalculator();
frame.setTitle("Calculator");
frame.setLocationRelativeTo(null);
frame.setBounds(200,100, 500, 100);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.pack();
frame.setVisible(true);
}//End of main method.
}// End of class JavaGUICalculator
Step by Step Solution
There are 3 Steps involved in it
Get step-by-step solutions from verified subject matter experts
